|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Не работает SendMessage
Приветствую обитателей!
Вопрос такой. Пытаюсь отправить клик в стороннее приложение, но чего-то не слушается меня код =( На примере пэйнта: Код:
procedure TForm1.Button4Click(Sender: TObject); var h:thandle; begin h:=findwindow(nil, PChar(listbox1.Items[listbox1.ItemIndex])); if h<>0 then showmessage('+') else showmessage('-'); SetForegroundWindow(h); sleep(1000); sendmessage(H, WM_LBUTTONDOWN, MK_LBUTTON, MakeLong(600, 600)); sleep(1000); sendmessage(H, WM_LBUTTONUP, MK_LBUTTON, MakeLong(600, 600)); end; Последний раз редактировалось alfikss, 07.05.2013 в 17:15. |
#2
|
|||
|
|||
для кликов ищи примеры mouse_event или sendinput
>woweook< |
#3
|
||||
|
||||
Можно так
Код:
procedure ClickOnForm(wnd: HWND; caption: string); var TheChildHandle: HWND; begin TheChildHandle := FindWindowEx(wnd, 0, nil, PChar(caption)); SendMessage(TheChildHandle, WM_LButtonDown, 1, 1); SendMessage(TheChildHandle, WM_LButtonUP, 1, 1); end; procedure TForm1.Button4Click(Sender: TObject); var wnd: HWND; caption: string; begin wnd := GetTopWindow(0); repeat SetLength(caption, GetWindowtextLength(wnd)); GetWindowText(wnd, @caption[1], length(caption) + 1); if (trim(caption) = 'Заголовок формы') then ClickOnForm(wnd, 'Имя кнопки'); wnd := GetNextWindow(wnd, GW_HWNDNEXT); until wnd = 0; end;//Drkb 02109 Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
||||
|
||||
Тему обсосали до последней косточки, выводы сделали. Код я ТС дал, далее уж как он решит, тем более нужно было всё это для игры.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
Цитата:
Ну а вообще решил проблему уже. |