Имитация клика мыши в любом месте экрана
Действительно, одному щелчку кнопки мыши соответствует нажатие и отпускание кнопки. Чтобы для пользователя создавалось впечатление, что курсор мыши неподвижен, нужно сохранить позицию курсора (GetCursorPos) мыши перед нажатием и восстановить позицию (SetCursorPos) после отпускания кнопки мыши. Для примера поместите компонент TButton на форму, и в событие кнопки Click запишите приведенный ниже код. При выполнении приложения и нажатии на кнопку будет открыть системное меню приложеня.
Пример
procedure TForm1.Button1Click(Sender: TObject);
var
P: TPoint;
begin
{ Сохраняем позицию курсора }
GetCursorPos(P);
{ Помещаем курсор, где нам надо }
SetCursorPos(Left + 10, Top + 10);
{ Симулируем нажатие кнопки мыши }
Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
{ Симулируем отпускание кнопки мыши }
Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
{ Возвращаем курсор в первоначальную позицию }
SetCursorPos(P.X, P.Y);
end;
Пример можно скачать здесь.
Комментарии