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.

Delphi锁定鼠标 模拟左右键 静止一会自动隐藏鼠标的更多相关文章

  1. Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法

    最近公司做项目,使用echarts做开发,碰到一些数据的名称很长导致图例展示的效果不是很好,自己写了一个方法,当X轴内容过长时自动隐藏,鼠标移动上去显示全部名称 样例: 图二是鼠标移动到名称显示的,怎 ...

  2. C# winform 实现 qq 在屏幕边缘 自动隐藏 鼠标移过去 移上去 又自动显示

    代码下载地址   http://download.csdn.net/detail/simadi/7677147

  3. 转---JS 获取鼠标左右键

    原文:http://blog.csdn.net/mine3333/article/details/7291557 function test() { alert(event.x+" &quo ...

  4. JS中鼠标左右键以及中键的事件

    在三维场景中有时候需要判断鼠标的事件,除了使用的click事件,只有鼠标左键有效,而右键无效.而对于onmousedown.onmouseup的时候鼠标的事件左键/右键有效.详细请看w3c上的资料. ...

  5. 【新特性速递】单元格导航(上下左右键,TAB键和ENTER键)

    上下左右按键 其实单元格导航(上下左右按键,需要启用表格的ShowSelectedCell属性)一直都存在,只不过之前的版本(v5.5.0)有一些小的BUG. BUG1 比如锁定列存在时,上下左右键只 ...

  6. windows桌面图标不显示,左右键无法使用的解决方法

    问题描述: 日常使用软件中,一返回桌面,桌面图标全部不显示,点击鼠标的左键,右键毫无反应 解决方法: 1. Ctrl+Shift+Esc呼出软仵管理器 2. 右键windows资管理器,点击属性 配图 ...

  7. 鼠标模拟点击a标签

    今天写程序遇到的,想要用鼠标模拟点击a标签 html代码如下: <a id="jump"></a> js代码如下: var page = ....; $(' ...

  8. selenium 键盘鼠标模拟

    一.键盘模拟常用的键 sendKeys(Keys.BACK_SPACE);  //删除键--Backspace sendKeys(Keys.SPACE);   //空格键 Space sendKeys ...

  9. unity中锁定鼠标移动&&隐藏鼠标&&强制是鼠标移动到某一位置

    [System.Runtime.InteropServices.DllImport("user32.dll")] //引入dll public static extern int ...

随机推荐

  1. JAVA会将所有的错误封装成为一个对象,其根本父类为Throwable

    JAVA会将所有的错误封装成为一个对象,其根本父类为Throwable. Throwable有两个子类:Error和Exception. 一个Error对象表示一个程序错误,指的是底层的.低级的.不可 ...

  2. C# 将MSMQ消息转换成Json格式

    PS:主要就是一个配置文件和一个转换函数 配置文件app.config  之前要ADD reference -->   system.configuration & using.syst ...

  3. db2 将逗号分隔数据转换为多值IN列表

    将逗号分隔数据转换为多值IN列表 2010-03-15 11:16:59|  分类: 数据库技术|举报|字号 订阅     下载LOFTER我的照片书  |     原文:http://book.cs ...

  4. Linux系统下修改MySQL密码(忘记密码)

    忘记原来的myql的root的密码: 首先,你必须要有操作系统的root权限了.要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤.类似于安全模式登录系统,有人建议说是pkill m ...

  5. 如何在ChemDraw中打出符号π

    很多人日常使用ChemDraw是一款非常优秀的化学绘图软件,在其绘制化学结构式或者反应式的过程中,常常需要添加各种符号.比如有的用户会需要输入希腊字符π,但是不知道用什么方法添加.本教程就来给大家介绍 ...

  6. hdu 2809(状压dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2809 思路:简单的状压dp,看代码会更明白. #include<iostream> #in ...

  7. javascript new Date()函数在不同浏览器上返回不同的值

    今天是2015年3月16日,在IE 6 上new Date()返回给后台server的字符串格式为 "Mon Mar 16  00:00:00 UTC 0800 2015",而在f ...

  8. 第三篇:CUDA 标准编程模式

    前言 本文将介绍 CUDA 编程的基本模式,所有 CUDA 程序都基于此模式编写,即使是调用库,库的底层也是这个模式实现的. 模式描述 1. 定义需要在 device 端执行的核函数.( 函数声明前加 ...

  9. ios 动画的时候 如果加阴影 会卡顿的

    记录一下今天某群的聊天记录,一些算是经验吧,以后有用的.呵呵~    动画的时候 如果加阴影 会卡顿的 A  10:59:13            _toView.layer.shadowColor ...

  10. sql语句判断身份证性别等

    SELECT t.card_number ,) AS "省份", SUBSTR(t.card_number,,) "出生年月", SUBSTR(t.card_n ...