|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Послать сообщение на выполнение функции приложению
В общем, передо мной ситуация, что есть программа, в ней нажатие кнопки запускает выполнение процедуры. Мне надо послать некое сообщение на выполнение этой процедуры в программе, как если бы была нажата кнопка.
Поиск дескриптора кнопки не работает (главного окна - дескриптор определяется, кнопки - нет). Он не возвращается. Я знаю имя процесса (NetSph.exe), имя процедуры(bCapStartClick), значения передаваемые ей (их 100% нет). Надо лишь послать сообщение на выполнение. Каким образом это можно сделать? Я ни бум-бум в посылке сообщений рабочему приложению... |
#2
|
|||
|
|||
Цитата:
Не думаю, что в оконной процедуре, которая обрабатывает все сообщения, посылаемые приложению, есть какое-то событие, предназначенное для передачи управления на произвольную процедуру. Так что, мне кажется, тут только можно отослать сообщение BM_CLICK нужной кнопке. А вообще, порядок передачи управления на процедуру или метку определяется программой по содержимому регистров процессора CS и EIP. Даже если вам известно смещение в памяти нужной процедуры, вряд ли возможно легко повлиять на выборку процессора. Впрочем, это только IMHO. =) |
#3
|
|||
|
|||
Цитата:
Код:
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? Этого мне будет достаточно. Цитата:
Цитата:
Хотя подумав немного, можно поразмыслить. На кнопке, котор. мне надо нажать прописано выполнение процедуры. Без параметров. Значит ей (процедуре не передается никаких ни CS ни EIP... Может они и есть, но они в программе реализованы заранее, т.к. готовность в выполнению процедуры однозначна. Надо только послать сообщение на выполнение действия, также, если б нажали кнопочку... Последний раз редактировалось ExUltimate, 23.04.2009 в 20:42. |