Эмуляция клика мышью
От: Tahoe  
Дата: 01.10.04 07:55
Оценка:
Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(
Re: Эмуляция клика мышью
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 01.10.04 08:01
Оценка:
Здравствуйте, Tahoe, Вы писали:

T>Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(


mouse_event()/SendInput() не подойдут?
- Искренне ваш, Поросенок Пафнутий
Re: Эмуляция клика мышью
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 01.10.04 08:10
Оценка: +1 -1
Здравствуйте, Tahoe, Вы писали:

T>Ктонить знает как эмулировать клик мышью в активном окне?


http://www.rsdn.ru/Forum/Info.aspx?name=FAQ.winapi.bugslayer
Автор: Odi$$ey
Дата: 18.04.04
Re: Эмуляция клика мышью
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 01.10.04 09:14
Оценка:
Здравствуйте, Tahoe, Вы писали:

T>Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(


Попробуй перед SendMessage(hWnd, WM_LBUTTONDOWN, wParam, lParam) вызвать SetCapture
"Что не завершено, не сделано вовсе" Гаусс
Re[2]: Эмуляция клика мышью
От: Tahoe  
Дата: 01.10.04 09:35
Оценка:
Здравствуйте, 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++, думаю тоже понятно будет.

Спасибо всем за помощь!!!
Re[2]: Эмуляция клика мышью
От: Tahoe  
Дата: 02.10.04 02:08
Оценка:
Здравствуйте, sadomovalex, Вы писали:

S>Здравствуйте, Tahoe, Вы писали:


T>>Ктонить знает как эмулировать клик мышью в активном окне? Пробовал Broadcast message — работает, но на все окна. На SendMessage конкретному окну ничего не происходит ;(


S>Попробуй перед SendMessage(hWnd, WM_LBUTTONDOWN, wParam, lParam) вызвать SetCapture


Так чейта не получается
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.