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

Вниз

Автоклик на форме!!! не кликает!!!!   Найти похожие ветки 

 
Denis_Visma   (2004-06-28 14:21) [0]

Уважаемые мастера! Проблема с эмулированием клика мышки на одном окне...
вообщем получаю хендл окна я вот каким образом
var
 aName: array [0..255] of Char;
begin
 hWnd := WindowFromPoint(CrPos);
 Label1.Caption := "Handle :  " + IntToStr(hWnd);
 if Boolean(GetClassName(hWnd, aName, 256)) then
   Label2.Caption := "ClassName :  " + string(aName)
 else
   Label2.Caption := "ClassName :  not found";

то есть хендл окна под мышкой...что самое интересное смотрю хендл окна через winsight32 (что поставляеться вместе с делфи), то хендл такой же...

затем кликаю вот так
sendmessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, rPos.X + rPos.Y);
sendmessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, rPos.X + rPos.Y);

и ни в какую не хочет кликать...дело в том что при клике на окне на котором мышка находиться должен открываться iexplorer но он не открываеться то есть не кликает мышка...
на любом другом окне кликает...
в чем может быть проблема?
Большое спасибо за советы.


 
Sandman25 ©   (2004-06-28 14:28) [1]

PostMessage?


 
Denis_Visma   (2004-06-28 14:30) [2]

пробовал...не помогает....


 
wicked ©   (2004-06-28 16:39) [3]


> sendmessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, rPos.X + rPos.Y);
> sendmessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, rPos.X + rPos.Y);

а это (выделенное) что такое?... имхо бред...
нужно например (rPos.Y shl 16) or (rPos.X and $ffff)...
ну или mouse_event / SendInput использовать... даже предпочтительней в данном случае будет....

ЗЫ и не sendmessage, а SendMessage...


 
Игорь Шевченко ©   (2004-06-28 16:54) [4]


> ЗЫ и не sendmessage, а SendMessage


PostMessage все-таки более привычен (даже для имитации) для аппаратных событий


 
GrayFace ©   (2004-06-29 06:55) [5]

Denis_Visma
Из твоего описания получается такая картина:
hWnd := WindowFromPoint(CrPos);
...
sendmessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, rPos.X + rPos.Y);
sendmessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, rPos.X + rPos.Y);

А должна быть такая:
sendmessage(IEwnd, WM_LBUTTONDOWN, MK_LBUTTON, rPos.X + rPos.Y);
sendmessage(IEwnd, WM_LBUTTONUP, MK_LBUTTON, rPos.X + rPos.Y);



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1090437143
VID
2004-07-21 23:12
2004.08.08
Посмеёмся :)


14-1090345921
MAN.
2004-07-20 21:52
2004.08.08
Программирование мобильника


1-1090598058
AlexDee
2004-07-23 19:54
2004.08.08
Возведение в "сложную" степень и число "E"


14-1090568557
t100
2004-07-23 11:42
2004.08.08
Экспорт адресной книги Outlook Express.Помогите!!!!!!!!!!!


1-1090487365
Anisa
2004-07-22 13:09
2004.08.08
Application.Terminate