Hola Alejo15x.
Por lo que veo en tu código, queres un desplazamiento en diagonal, ya que:
SetCursorPos( FMousePos.X + 1 , FMousePos.Y + 1); ,
supongo, intenta incrementar la posición X e Y en la misma cantidad.
Una forma de hacerlo podría ser:
Código Delphi
[-]
procedure MoveMouse(IniX, IniY, FinX, FinY, Espera: Integer);
begin
SetCursorPos(IniX, IniY); repeat
if IniX < FinX then
Inc(IniX) else
Dec(IniX); if IniY < FinY then
Inc(iniY) else
Dec(IniY); SetCursorPos(IniX, IniY); Sleep(Espera); until (Mouse.CursorPos.X = FinX) or (Mouse.CursorPos.Y = FinY);
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
MoveMouse(0, 0, Screen.Width-10, Screen.Height-10, 3);
MoveMouse(Screen.Width-10, Screen.Height-10, 0, 0, 6);
end;
Saludos.