![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |