Ver Mensaje Individual
  #2  
Antiguo 06-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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);   // posición inicial
  repeat
    if IniX < FinX then          
      Inc(IniX)               // X hacia abajo
    else                        
      Dec(IniX);              // X hacia arriba
    if IniY < FinY then       
      Inc(iniY)               // Y hacia abajo
    else                       
      Dec(IniY);              // Y hacia arriba 
    SetCursorPos(IniX, IniY); // nueva posición
    Sleep(Espera);            // 0 en parámetro Espera (sin demora)
  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.

Última edición por ecfisa fecha: 06-11-2010 a las 09:06:37.
Responder Con Cita