Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(
Здравствуйте, Tahoe, Вы писали:
T>Ктонить знает как эмулировать клик мышью в активном окне?
http://www.rsdn.ru/Forum/Info.aspx?name=FAQ.winapi.bugslayerАвтор: Odi$$ey
Дата: 18.04.04
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Tahoe, Вы писали:
T>>Ктонить знает как эмулировать клик мышью в активном окне?
OE>http://www.rsdn.ru/Forum/Info.aspx?name=FAQ.winapi.bugslayerАвтор: Odi$$ey
Дата: 18.04.04
Отлично, посмотрел, как они делают и сделал тоже самое... Т.к. этот проэкт на Delphi для всех привожу работающий пример, чтоб не повторять мою работу:
//демонстрация клика левой кнопкой мыши в текущей позиции курсора
procedure *****
var Point:TPoint;Inputs:tagInPut;
begin
//получить текущую позицию курсора
windows.GetCursorPos(point);
//заполнить структуру сценария для нажатия правой кнопки
Inputs.Itype:=INPUT_MOUSE; //событие мыши
Inputs.mi.dx:=point.X; //координаты
Inputs.mi.dy:=point.Y;
Inputs.mi.dwFlags:=MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN; //координаты абсолютные и нажатие правой кнопки
Inputs.mi.mouseData:=0; //остальные для этого не надо
Inputs.mi.time:=0;
Inputs.mi.dwExtraInfo:=0;
//вызов из win32 api
SendInput(1,Inputs,sizeof(tagInPut));
//заполнить структуру сценария для отпускания правой кнопки
Inputs.mi.dwFlags:=MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP;
SendInput(1,Inputs,sizeof(tagInPut));
end
Как пользоваться SendInput есть в MSDN и описания структур тоже. Для работающих на с++/vc++, думаю тоже понятно будет.
Спасибо всем за помощь!!!
Здравствуйте, sadomovalex, Вы писали:
S>Здравствуйте, Tahoe, Вы писали:
T>>Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(
S>Попробуй перед SendMessage(hWnd, WM_LBUTTONDOWN, wParam, lParam) вызвать SetCapture
Так чейта не получается