GetCursorPos()

 Автор Spawn

Обрабатывай событие OnMouseMove. Координаты курсора можно получить следующим путем:

Можно через события OnMouseEnter/OnMouseLeave:

Затем считывать параметр FMouseInPos.

Code:

// if the result is 0, no mouse is present

 

function GetNumberOfMouseButtons: Integer;

begin

  Result := GetSysTemMetrics(SM_CMOUSEBUTTONS);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  ShowMessage('Your mouse has ' + IntToStr(GetNumberOfMouseButtons) + ' buttons.');

end;

 

Существует такой тип, как TMouse, который передаёт координаты мышки в любое время, так что помести в обработчик события нажатия мыши на форме его вызов. Подробнее смотри в хелпе.

 Лучше говорить, что существует объект класса TMouse, на него ссылается глобальная переменная Mouse из модуля Controls... А то человек кинется создавать свой экземпляр...

Code:

// Set example:

procedure TForm1.Button1Click(Sender: TObject);

begin

// will reset after system start

SetDoubleClickTime(1500);

end;

 

// Get example:

procedure TForm1.Button2Click(Sender: TObject);

begin

ShowMessage(IntToStr(GetDoubleClickTime));

end;

 

Code:

Begin

//---------

SwapMouseButton(true); // Поменять обратно - SwapMouseButton(false);

//---------

end;

 

Существует свойство "WheelPresent" глобального обьекта "mouse".

 Существуют функции winapi:

WM_LBUTTONDOWN

WM_RBUTTONDOWN

 Если проверить точку нажатия мышки таким вот образом:

...

SetForegroundWindow(WindowUO);

mouse_event(MOUSEEVENTF_MOVE,400,400,0,0);

...

то получилось, что мышка перемещалась не в те координаты(относительно разрешения монитора (800 на 600)) которые я задумал(в не зависимости от местоположения мышки она перемещалась строго по одному направлению на одинаковое расстояние), причем я сделал еще один вариант - dx=100, dy=100, но тогда перемещение мышки произошло в другую сторону(в сторону x=0 y=0 монитора)!

 Для этого можно воспользоваться API функцией GetCapture().

 Пример:

 Следующий пример показывает, как "подтолкнуть мышку" без вмешательства пользователя.

 

Code:

function MousePresent : Boolean;

begin

if GetSystemMetrics(SM_MOUSEPRESENT) <> 0 then

Result := true

else

Result := false;

end;