-
hwnd кнопки всегда один и тот же ? или он меняется там допустим при перезапуски проги или виндоус ?
-
даже во время работы программы может поменяться
-
ёпрст, логично) большое спасибо за ответ!
-
интересно, узнал wnd окна, хотел посмотреть все его элементы через EnumChildWindows, а у меня ничего не отобразилось, как будто там голая форма класс окна тоже политический 'HwndWrapper[HoldemManager.exe;;84d24142-ca5c-4ac3-98f8-7c84fd06f61e]' может у кого то есть идеи?*
-
> может у кого то есть идеи?*
Либо ты не правильно ищешь дочерние окна, либо их там нет, а все что ты там видишь глазами - не оконные элементы. Возьми какой либо проверенный инструмент, например Spy++ и посмотри, есть ли там дочерние окна или нет.
-
Так, нашёл окно с классом #32770, на этой форме есть кнопка, хочу нажать её. В Spy++ иерархия сначала #32770 и в ней сразу моя кнопка. Далее через FindWindowEx пытаюсь получить hwnd кнопки, но не получается, возвращается 0.
-
и вообще через свою вспомогательную прогу и spy++ вычислил whd кнопки пишу SendMessage(526188,BM_CLICK,0,0); ничего не происходит
а если написать SetActiveWindow(где hwnd это окно с классом #32770 то оно фокуса не получает);
-
> пытаюсь получить hwnd кнопки
ты код то покажи...
-
да код то дефолтный h := FindWindow(nil, 'заголовок окна'); (тут всё хорошо, hwd получил) h2:= FindWindowEx(h, 0, 'класс', 'Register'); (тут возвращает 0) SendMessage(h2,BM_CLICK,0,0);
-
> 'класс', 'Register'
О_о это что?
-
ну там класс кнопки (я не стал его копировать, его легко нашёл с помощью своей проги и он совпал с spy++) и имя кнопки(тоже совпало)
-
телепаты в отпуске, ты ПОЛНЫЙ код приводи...
-
procedure TForm1.Button2Click(Sender: TObject);
var h,h2: hwnd; i:integer;
begin
h := FindWindow(nil, 'PokerStars Lobby - Logged in as Artyom');
h2:= FindWindowEx(FindWindow('Windows', nil), h, 'PokerStarsButtonClass', 'Register');
SendMessage(h2,BM_CLICK,0,0);
end;
-
не так (этот вариант я сейчас попробовал тоже не катит) вот
procedure TForm1.Button2Click(Sender: TObject);
var h,h2: hwnd;
begin
h := FindWindow(nil, 'PokerStars Lobby - Logged in as Artyom');
h2:= FindWindowEx(h, 0, 'PokerStarsButtonClass', 'Register');
SendMessage(h2,BM_CLICK,0,0);
end;
-
мдя, я так и догадывался...
-
ну я писал дефолтно)
-
такие программы, могут быть защищены от автонажатий итп...
-
и приведи данные SPY++, что то я струдом верю [10]
-
ps. "халява" наказуема
-
я тоже так подумал, просто у меня есть 2 проги (от других разработчиков), и там это происходит так быстро. Я подумал что это программно нажимают. Ну как всегда конечно остаётся вариант через мышку)
|