例如,输入x,y坐标分别是100,200,那么鼠标就自动移到屏幕上的(100,200)位置,并且再不能移动,除非解除锁定状态。要求不只是在本程序的form内能实现,而且可以在任何处于前台的程序界面中也能达到相同的目的?谢谢。分不够还有。

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
            rt:TRect;
    begin
            rt:=self.BoundsRect;
    {        rt.Left:=100;
            rt.Top:=200;
            rt.Right:=100;
            rt.bottom:=200;}
            clipCursor(@rt);
    end;//uses shellapi;
    procedure TForm1.Button2Click(Sender: TObject);
    var
            rt:TRect;
    begin
            rt.Left:=0;
            rt.Top:=0;
            rt.Right:=screen.Width ;
            rt.Bottom:=screen.Height;
            clipCursor(@rt);
    end;
      

  2.   

    限制鼠标的活动范围:
    在Form中放置二个 Button, 然後分别为这两个按钮定义OnClick响应事件如下: 
    // 开始
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
    btButton2: TRect; 
    begin 
    btButton2 := Button2.BoundsRect; 
    MapWindowPoints(handle, 0, btButton2, 2); // 座标换算 
    ClipCursor(@btButton2); // 限制鼠标移动区域 
    end; // 还原 
    procedure TForm1.Button2Click(Sender: TObject); 
    var 
    btScreen: TRect; 
    begin 
    btScreen := Rect(0, 0, Screen.Width, Screen.Height); 
    ClipCursor(@btScreen); 
    end;
      

  3.   

    setcursorpos(100,200);//加这一句
    //        clipCursor(@rt);