可能是太快了吧
  看不到;
你可以你点一点的Move其中可以Sleep一会儿

解决方案 »

  1.   

    var
    j:integer;
    p : TPoint;
    begin
        GetCursorPos( p );  //得到当前鼠标座标
        for j:=p.x to p.x+30 do begin
          //Showmessage(inttostr(j));
          mouse_event(MOUSEEVENTF_MOVE,j,p.y,0,0);
          sleep(500);
          application.ProcessMessages();
        end;
    end;
      

  2.   

    我做了一个例子
    希望能抛砖引玉
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Arrow:integer;
      i,x,y:integer;
    begin
      Arrow:=1;
      y:=0;
      x:=0;
      for i:=0 to 100 do
      begin
        if Arrow=1 then
        begin
          Arrow:=2;
          x:=1;
          y:=0;
        end else
        begin
          Arrow:=1;
          y:=1;
          x:=0;
        end;
        Sleep(20);
        mouse_event(MOUSEEVENTF_MOVE,x,y,0,0);
      end;end;
      

  3.   

    var
    x:integer;
    begin
      for x:=0 to 150 do
      begin
        mouse_event(MOUSEEVENTF_MOVE,1,1,0,0);
        sleep(20);
      end;
    end;
      

  4.   

    我试过,sleep(1)都比mouse实际移动的还慢,
    给你们看下我的远程控制mouse的move            
               delete(gotstr,1,6);
               windows.getcursorpos(s);
               p.x:=strtoint(copy(gotstr,1,pos(',',gotstr)-1));//这是客户端mouse移动时发过的的从标。
               p.y:=strtoint(copy(gotstr,pos(',',gotstr)+1,pos(';',gotstr)-1-pos(',',gotstr)));
    //           mouse_event(MOUSEEVENTF_MOVE,30,30,0,0);
         for i:=5 downto 1 do    //做5次显示移动过程
                begin
                if ((s.x-p.x) mod i )<>0 then
                 begin
                 if (s.x-p.x)>0 then
                  p.x:=p.x+((s.x-p.x) div i)+1
                  else
                   p.x:=p.x-abs((s.x-p.x) div i)-1;
                 end
                else
                  if (s.x-p.x)>0 then
                    p.x:=p.x+((s.x-p.x) div i)
                   else p.x:=p.x-abs((s.x-p.x) div i);
                if ((s.y-p.y) mod i )<>0 then
                 begin
                 if (s.y-p.y)>0 then
                  p.y:=p.y+((s.y-p.y) div i)+1
                  else
                   p.y:=p.y-abs((s.y-p.y) div i)-1;
                 end
                else
                  if (s.y-p.y)>0 then
                    p.y:=p.y+((s.y-p.y) div i)
                   else p.y:=p.y-abs((s.y-p.y) div i);
               windows.setcursorpos(p.x,p.y);
    //            sleep(1);
                end;
    就这样如果取消sleep,mouse就一跳,一跳的!不取消的话结果这边mouse另一个动作到了
    他的上一次移动还没完!
      

  5.   

    to:w8u(晌马)
      我的程序改一下就可以实现不是45度角的方向移动;
      我跑...,
        砰...(撞了)
      我跑...,
        你看我不到