Примерно так:
Код:
procedure MOUSEMOVE(var Message: TWMMouseMove); message WM_MOUSEMOVE;
...
var
Change: Boolean = False;
...
procedure TForm1.MOUSEMOVE(var Message: TWMMouseMove);
const
Step = 20;
var
NewPos: TPoint;
Tmp: Integer;
begin
Change:=not Change;
Label1.Caption:=IntToStr(Message.XPos);
Label2.Caption:=IntToStr(Message.YPos);
Tmp:=(Message.XPos div Step)*Step;
if Message.XPos mod Step > Step div 2 then
Tmp:=Tmp + Step;
NewPos.X:=Tmp;
Tmp:=(Message.YPos div Step)*Step;
if Message.YPos mod Step > Step div 2 then
Tmp:=Tmp + Step;
NewPos.Y:=Tmp;
NewPos:=ClientToScreen(NewPos);
if not Change then
SetCursorPos(NewPos.X, NewPos.Y);
end;
Только мышка будет немного дергаться.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
|