Главная страница
    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.46 MB
Время: 0.008 c
6-31384
alt7
2003-05-05 14:38
2003.07.10
TIdTelnet читать из буфера


14-31402
SH
2003-06-24 18:41
2003.07.10
Сохранение структур в реестр


1-31226
Дучф
2003-06-29 08:57
2003.07.10
Проблема c Excel


3-31133
Rustik
2003-06-18 11:39
2003.07.10
Подскажите как сформировать массив типа дата начиная с дата1


14-31428
DOR
2003-06-23 10:08
2003.07.10
Здравствуйте знатоки.Какие компаненты есть для ShareWare программ





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский