Форум: "Система";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
ВнизПроблема с левой кнопкой мыши. Найти похожие ветки
← →
mm0 (2003-04-27 13:56) [0]Люди помогите.
Нужно ножать левой кномпкой мыши на другой программе в заданой координате.
Вот я пробывал следующие варианты,не один не работает:
h:=FindWindow(nil,"sergey");
if h=0 then begin ShowMessage("nw");Exit;end;
1вар.
SendMessage(H, WM_MBUTTONDOWN ,MK_LBUTTON, MAKELONG(20{x},21{y}));
Sleep(200);
SendMessage(H, WM_MBUTTONUP ,MK_LBUTTON, MAKELONG(20,21));
2вар.
SendMessage(H, WM_LBUTTONDOWN ,MK_LBUTTON, MAKELONG(20{x},21{y}));
Sleep(200);
SendMessage(H, WM_LBUTTONUP ,MK_LBUTTON, MAKELONG(20,21));
3вар.
SendMessage(H, WM_LBUTTONDOWN ,0, MAKELONG(20{x},21{y}));
Sleep(200);
SendMessage(H, WM_LBUTTONUP ,0, MAKELONG(20,21));
Пробывал и для h:=0.
и даже:
SendMessage(H, WM_LBUTTONDOWN ,0,0);
Sleep(200);
SendMessage(H, WM_LBUTTONUP ,0, 0);
-неработает
← →
Song (2003-04-27 14:40) [1]Координаты нужны относительно окна, куда посылаешь сообщения.
Проще воспользоваться BM_CLICK
← →
mm0 (2003-04-28 06:52) [2]ДА,относительно окна.
А как воспользоватся BM_CLICK?
← →
Ancara (2003-04-28 13:04) [3]Насколько я понял, ты хочешь нажать на конкретную кнопку в конкретном окне конкретной проги. Ваще конкретно!:))
Если так, то осмелюсь посоветовать следующее:
1. Ищем окно:
hWin:=FindWindow(0,"Конкретный заголовок");
если нашли
if hWin<>0 then begin
2. Берем первое дочернее окно:
hWin:=GetWindow(hWin, GW_CHILD);
смотрим на его caption:
GetWindowText(hWin, WinCap, sizeof(WinCap));
он попадает вWinCap: array [0..127] of Char
если кнопка не та берем следующее окно и его caption:
hWin:= GetWindow(hWin, gw_hWndNext);
и так до тех пор пока не найдем нужную кнопку (ведь кнопка это тоже окно для виндов со своим handle"ом).
Если caption совпадает с нашим условием:
WinCap="Конкретная кнопка";
то значит hWin - и есть handle нашей кнопки, далее полная свобода действий:
можем послать ей сообщение:
SendMessage(hWin, WM_CLICK, 0, 0);
сделать доступной/недоступной:
EnableWindow(hWin,true/false);
скрыть/показать:
ShowWindow(hWin, SW_HIDE/SW_SHOW);
или ваще конкретно закрыть:
CloseWindow(hWin);
----------------------------
Надеюсь, что мой совет хоть чем-нибудь пригодится, ну а если нет - sorry...
Желаю удачи!
← →
mm0 (2003-04-28 15:17) [4]Пробовал.Непомогло.
Мышью надежнее...
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c