Имитация клика мыши в любом месте экрана
Действительно, одному щелчку кнопки мыши соответствует нажатие и отпускание кнопки. Чтобы для пользователя создавалось впечатление, что курсор мыши неподвижен, нужно сохранить позицию курсора (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;
Пример можно скачать здесь.
Комментарии