zoukankan      html  css  js  c++  java
  • Delphi锁定鼠标 模拟左右键 静止一会自动隐藏鼠标

    unit Unit1;

    interface

    uses

      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

      Dialogs, StdCtrls, ImgList, ComCtrls, ExtCtrls;

    type

      TForm1 = class(TForm)

        Button1: TButton;

        Edit1: TEdit;

        Button2: TButton;

        Button3: TButton;

        Button4: TButton;

        Timer1: TTimer;

        Button6: TButton;

        Label1: TLabel;

        RadioButton1: TRadioButton;

        RadioButton2: TRadioButton;

        Button5: TButton;

        procedure Button1Click(Sender: TObject);

        procedure Button2Click(Sender: TObject);

        procedure Button3Click(Sender: TObject);

        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

          Y: Integer);

        procedure Button4Click(Sender: TObject);

        procedure Timer1Timer(Sender: TObject);

        procedure Button6Click(Sender: TObject);

        procedure Button5Click(Sender: TObject);

      private

        { Private declarations }

      public

        { Public declarations }

      end;

    var

      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);

    var  pt: TPoint;

    begin  

       //模拟左键单击

      If RadioButton1.Checked Then

       Begin

        pt:= Edit1.ClientToScreen( Point(4,4));   //鼠标定位

        SetCursorPos( pt.x, pt.y );

        mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );

        mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );

       end;

       //模拟右键单击

      If RadioButton2.Checked Then

       Begin

        pt:= Edit1.ClientToScreen(Point(4,4));       //鼠标定位

        SetCursorPos( pt.x, pt.y );

        mouse_event( MOUSEEVENTF_RightDOWN, 0, 0, 0, 0 );

        mouse_event( MOUSEEVENTF_RightUP, 0, 0, 0, 0 );

       end;

     end;

    procedure TForm1.Button2Click(Sender: TObject);

    var btn3Rect: TRect;

    begin

     btn3Rect := Button3.BoundsRect;

     MapWindowPoints(handle,0, btn3Rect, 2);  // 坐标换算

     ClipCursor(@btn3Rect);                   // 限制鼠标移动区域

    end;

    procedure TForm1.Button3Click(Sender: TObject);

    var btScreen: TRect;

    begin

     btScreen := Rect(0, 0, Screen.Width, Screen.Height);

     ClipCursor(@btScreen);       //解琐,使鼠标在整个屏幕有效

    end;

    procedure TForm1.Timer1Timer(Sender: TObject);

    begin

      cursor:=crNone;   //2秒钟没有移动鼠标就在当前窗体隐藏鼠标

    end;

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    begin

    if Timer1.Enabled=True  then //判断定时器是否打开

    begin                        //如打开,则重新开始计时

     Timer1.Enabled:=False;

     Timer1.Enabled:=True;

     end;

     cursor:=crDefault;          //鼠标移动时,改变光标类型为缺省类型

    end;

    procedure TForm1.Button6Click(Sender: TObject);

    var mouseinfo:string;

    begin

        //检测是否安装了鼠标

     If (GetSystemMetrics(SM_MOUSEPRESENT)<>0) Then

         mouseinfo:='1.系统检测到鼠标;'

      Else  mouseinfo:='1.系统没有鼠标;';

       //检测鼠标是否支持滑动

     If (GetSystemMetrics(SM_MOUSEWHEELPRESENT)<> 0) Then

         mouseinfo:=mouseinfo+'2.系统支持滑动鼠标。'

      Else  mouseinfo:=mouseinfo+'2.系统不支持滑动鼠标。';

    Label1.Caption:=mouseinfo;

    end;

    procedure TForm1.Button4Click(Sender: TObject);

    begin

      SwapMouseButton(True);    //交换左右键

    end;

    procedure TForm1.Button5Click(Sender: TObject);

    begin

       SwapMouseButton(False); //复原左右键

    end;

    end.

  • 相关阅读:
    IDEA中代码无故报红解决方法
    CAP原则的基本理论知识
    Java IO 拷贝MP3文件,包括递归子文件夹下的文件
    maven 配置阿里云镜像 settings.xml内容
    Restful API 级别及意义
    日常巡检(脚本)
    使用Matplotlib画图系列(一)
    Python 阶乘factorial
    交叉验证思想
    FeatureSelectors
  • 原文地址:https://www.cnblogs.com/honeynm/p/4260982.html
Copyright © 2011-2022 走看看