Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Что не так в процедуре ? ПОДСКАЖИТЕ она эмулирует щелчок мыши   Найти похожие ветки 

 
hammich   (2003-05-14 12:03) [0]

Мне нужна процедура которая эмулирует щелчок мышью по некоторой координате.
Я делаю это вот такой процедурой:

void DoClick(long x, long y)
{
Sleep(2000);
SetCursorPos(x, y);
POINT lpPoint;
GetCursorPos(&lpPoint);
HWND hWnd;
RECT lpRect;
hWnd = WindowFromPoint( lpPoint);
Sleep(500);
GetWindowRect(hWnd,&lpRect);
lpPoint.x = lpPoint.x - lpRect.left;
lpPoint.y = lpPoint.y - lpRect.top;
int lParam = 65536*lpPoint.y + lpPoint.x;
Sleep(100);
SetCapture(hWnd);
Sleep(100);
int nHittest = SendMessage(hWnd, WM_NCHITTEST, 0, lParam);
Sleep(100);
SendMessage(hWnd,WM_NCLBUTTONDOWN,nHittest,lParam);
Sleep(100);
SendMessage(hWnd,WM_NCLBUTTONUP,nHittest,lParam);
Sleep(100);
ReleaseCapture();
}

Дело в том что не во все места данная процедура делает клик,
на некоторые области, например меню, кнопка максимизации она не работает.
Программа виснет на SendMessage(hWnd,WM_NCLBUTTONDOWN,nHittest,lParam);
Я пробовал и сообщения WM_LBUTTONDOWN, WM_LBUTTONUP, все равно не работает.
Что не так? Что нужно изменить?


 
Snap ©   (2003-05-14 12:36) [1]

Во первых это сайт по ДЕЛЬФИ. Во вторых есть специальная процедура mouse_event, и она очень хорошо описана в МСДН и делает как раз то что тебе нужно. А в третьих я не понял зачем ты ставишь задержку в начале процедуры?



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.026 c
7-55861
TarAntul
2003-05-05 05:22
2003.07.17
Как в XP заменить в explorer.exe на свою прогу?


14-55800
miek
2003-07-01 00:14
2003.07.17
Борландовский юмор


14-55813
Мазут Береговой
2003-07-01 03:54
2003.07.17
Кажется у меня атипичная пневмония (SARS).


1-55613
Snake1977
2003-07-03 17:47
2003.07.17
События OnClick


6-55676
junior
2003-05-11 02:08
2003.07.17
Сеть, как узнать информацию о клиенте(ах) ???