Цитата:
Сообщение от Nyctos Kasignete
Интересно, это еще почему?? Дескриптор кнопки найти можно, действуя функцией EnumChildWindows... А вы как искали?
|
Код:
function GetNetHandle: hwnd;
begin
result := FindWindow('Net Speakerphone - ultimate-fev', nil);
result := FindWindowEx(result, 0, 'Net Speakerphone - ultimate-fev', 'Net Speakerphone - ultimate-fev');
if result = 0 then result := Findwindow(nil,'Net Speakerphone - ultimate-fev');
end;
h1:=GetNetHandle;
h2 := FindWindowEx(h1, 0, 'TButton', 'Передача ON');
Это я использовал из какого-то примера.
Насчет EnumChildWindows - я ваще тока начал с Delphi... 2 месяц им занимаюсь... Как мне выкопать второй параметр, Pointer? Этого мне будет достаточно.
Цитата:
Не думаю, что в оконной процедуре, которая обрабатывает все сообщения, посылаемые приложению, есть какое-то событие, предназначенное для передачи управления на произвольную процедуру. Так что, мне кажется, тут только можно отослать сообщение BM_CLICK нужной кнопке.
|
Возможно!
Цитата:
А вообще, порядок передачи управления на процедуру или метку определяется программой по содержимому регистров процессора CS и EIP. Даже если вам известно смещение в памяти нужной процедуры, вряд ли возможно легко повлиять на выборку процессора. Впрочем, это только IMHO. =)
|
Ты меня образумил

Если не ошибаюсь, это действительно так.
Хотя подумав немного, можно поразмыслить. На кнопке, котор. мне надо нажать прописано выполнение процедуры. Без параметров. Значит ей (процедуре не передается никаких ни CS ни EIP... Может они и есть, но они в программе реализованы заранее, т.к. готовность в выполнению процедуры однозначна. Надо только послать сообщение на выполнение действия, также, если б нажали кнопочку...