Mouse - simular o clique do mouse |
Top Previous Next |
|
// simular um clique no mouse
procedure MouseClick(const Duration: Word); var Win: HWnd; Pt: TPoint; Msg: TMsg; FlagMouseDown, FlagMouseUp: DWord; begin { Se os botões estiverem invertidos... } if MouseSwappedButtons then begin FlagMouseDown := MOUSEEVENTF_RIGHTDOWN; FlagMouseUp := MOUSEEVENTF_RIGHTUP; end else begin; { Se os botões estiverem normais... } FlagMouseDown := MOUSEEVENTF_LEFTDOWN; FlagMouseUp := MOUSEEVENTF_LEFTUP; end;
{ Obtém o handle da janela que está sob o cursor } Windows.GetCursorPos(Pt); Win := Windows.WindowFromPoint(Pt);
{ Inicia o click } mouse_event(FlagMouseDown, 0, 0, 0, 0);
{ Processa as mensagens do mouse pertencentes à janela sob o cursor } while PeekMessage(Msg, Win, WM_LBUTTONDOWN, WM_LBUTTONDOWN, PM_REMOVE) do DispatchMessage(Msg);
Sleep(Duration);
{ Conclui o click } mouse_event(FlagMouseUp, 0, 0, 0, 0); end; |