Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
3-31086
DmitryNekl
2003-06-15 19:12
2003.07.10
Настройка строки подключения с помощью PromptDataSource (ADO)


3-31152
Dima74
2003-06-15 22:37
2003.07.10
Временные файлы?


3-31104
Несведующий
2003-06-15 12:31
2003.07.10
Можно ли запоролить таблицу Foxpro


6-31381
Art1111111
2003-05-05 00:22
2003.07.10
Named pipes (ERROR_PIPE_NOT_CONNECTED).


14-31503
Maxim Pshevlotsky
2003-06-24 06:00
2003.07.10
MacroAssembler6.1 не компилирует asm файлы в WinXP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский