zmiana kierunków myszy nie działa na xp

0

napisałem takie coś

  procedure TForm1.Timer1Timer(Sender: TObject);
var p: TPoint;
 Rozd : packed record
   X, Y : Integer;
  end;
  odrzut: integer; // odrzucanie kursora
  minodrzut: integer; // minimalna odleglosc kursora
begin

Rozd.X := GetSystemMetrics(SM_CXSCREEN); // pobranie rozdzielczosci w poziomie
Rozd.Y := GetSystemMetrics(SM_CYSCREEN); // pobranie rozdzielczosci w pionie

odrzut := 15;
minodrzut := 1; //min 1


GetCursorPos(p);


//wybijanie kursora przy krawędziach początek
if(p.X < minodrzut) then begin
SetCursorPos(odrzut,p.Y);
X:=odrzut;
end;

if(p.X > ((Rozd.X - minodrzut)-1)) then begin
SetCursorPos((Rozd.X - odrzut),p.Y);
X:=(Rozd.X - odrzut);
end;


GetCursorPos(p);


if(p.Y < minodrzut) then begin
SetCursorPos(p.X ,odrzut);
Y:=odrzut;
end;

if(p.Y > ((Rozd.Y - minodrzut)-1)) then begin
SetCursorPos(p.X ,(Rozd.Y - odrzut));
Y:=(Rozd.Y - odrzut);
end;
//wybijanie kursora przy krawędziach koniec

GetCursorPos(p);

if(X > p.X) then
SetCursorPos(X-(p.X-X) , p.Y)
else if(X < p.X) then
SetCursorPos(X+(X-p.x) , p.Y);

GetCursorPos(p);

if(Y > p.Y) then
SetCursorPos(p.X , Y-(p.Y-Y))
else if(Y < p.Y) then
SetCursorPos(p.X , Y+(Y-p.Y));

GetCursorPos(p);
X := p.X;
Y := p.Y;
end;

X i Y to integer, wsadziłem to do timera. Na win7 wszystko działa ale na XP nie, co jest nie tak?

0

Nie wiem, ale
• zobacz co ci zwraca to GetSystemMetrics — czy dostajesz sensowny wynik
• zobacz co ci zwraca GetCursorPos
• zobacz czy działa SetCursorPos

a będziesz wiedział gdzie jest problem

0

to SetCursorPos nie działa tu pisze coś o tym http://forums.techarena.in/operating-systems/1324743.htm korzystam z VMware wychodzi na to że na wirtualnej maszynie nie działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1