易语言如何实现禁止鼠标移动,禁止键盘输入

易语言怎么编写禁止鼠标移动,或者是禁止键盘输入(禁止打字)的程序?

先插入DLL命令

.DLL命令 取模块句柄_API, 整型, "kernel32.dll", "GetModuleHandleA", ,
.参数 程序名, 整数型, ,

.DLL命令 安装钩子, 整数型, , "SetWindowsHookExA", ,
.参数 ihook, 整数型
.参数 lpfunc, 子程序指针
.参数 hin, 整数型
.参数 threadid, 整数型

.DLL命令 卸载钩子, 整数型, , "UnhookWindowsHookEx", ,
.参数 hHook, 整数型

.DLL命令 CopyMemory, , , "RtlMoveMemory", ,
.参数 Destination, 按键信息_
.参数 Source, 整数型
.参数 cbCopy, 整数型

.DLL命令 下一个钩子, 整数型, , "CallNextHookEx", ,
.参数 hHook, 整数型
.参数 icode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型

插入自定义数据类型

.数据类型 按键信息_, ,
.成员 虚拟码, 整数型
.成员 扫描码, 整数型
.成员 标记, 整数型
.成员 时间, 整数型
.成员 额外信息, 整数型

插入全局变量

鼠标锁定状态 逻辑型
键盘锁定状态 逻辑型
鼠标锁定钩子句柄 整数型
键盘锁定钩子句柄 整数型

插入子程序

.子程序 键盘钩子处理, 整数型, , 锁键盘 [斩月]
.参数 icode, 整数型
.参数 wparam, 整数型
.参数 lparam, 整数型
.局部变量 按键信息, 按键信息_

.如果真 (键盘锁定状态)
返回 (1)
.如果真结束
CopyMemory (按键信息, lparam, 28)
.如果真 (icode = 0)
.如果真 (按键信息.虚拟码 = #Esc键 或 按键信息.虚拟码 = #Tab键 或 按键信息.虚拟码 = #F4键)
返回 (1)
.如果真结束
.如果真 (按键信息.虚拟码 = 44 或 按键信息.虚拟码 = 145 或 按键信息.虚拟码 = 19) ' Print键 Scroll键 Pause键
返回 (1)
.如果真结束
.如果真 (按键信息.虚拟码 = 91 或 按键信息.虚拟码 = 92 或 按键信息.虚拟码 = 93) ' 左右Win键与菜单键
返回 (1)
.如果真结束
.如果真 (按键信息.虚拟码 = 160 或 按键信息.虚拟码 = 161) ' 左右Shift键
返回 (1)
.如果真结束
.如果真 (按键信息.虚拟码 = 162 或 按键信息.虚拟码 = 163) ' 左右Ctrl键
返回 (1)
.如果真结束
.如果真 (按键信息.虚拟码 = 164 或 按键信息.虚拟码 = 165) ' 左右Alt键
返回 (1)
.如果真结束
返回 (0)
.如果真结束
返回 (下一个钩子 (键盘锁定钩子句柄, icode, wparam, lparam))

.子程序 鼠标钩子处理, 整数型, , 锁鼠标 [斩月]
.参数 code, 整数型
.参数 鼠标标识, 整数型
.参数 lp, 整数型

.如果真 (鼠标锁定状态)
返回 (1)
.如果真结束
.如果真 (鼠标标识 = 513 或 鼠标标识 = 514 或 鼠标标识 = 515) ' 鼠标左键按下,鼠标左键放开,鼠标左键双击
返回 (1)
.如果真结束
.如果真 (鼠标标识 = 516 或 鼠标标识 = 517 或 鼠标标识 = 518) ' 鼠标右键按下,鼠标右键放开,鼠标右键双击
返回 (1)
.如果真结束
返回 (下一个钩子 (鼠标锁定钩子句柄, code, 鼠标标识, lp))

.子程序 键盘锁定, , 公开, 锁定所有键盘按键(锁定后,键盘无法操作!)
.参数 状态, 逻辑型, 可空, 真:锁全键盘(可空为假)假:锁定功能键与Win键Esc键F4键Tab键Print键Soroll键Pause键

键盘锁定钩子句柄 = 安装钩子 (13, &键盘钩子处理, 取模块句柄_API (0), 0)
键盘锁定状态 = 状态

.子程序 鼠标锁定, , , 锁定鼠标键(锁定后,鼠标键无效)
.参数 状态, 逻辑型, 可空, 真:完全锁定鼠标 (可空为假) 假:锁定鼠标左右键

鼠标锁定钩子句柄 = 安装钩子 (14, &鼠标钩子处理, 取模块句柄_API (0), 0) ' 载入鼠标钩子
鼠标锁定状态 = 状态

.子程序 键盘解锁, , , 键盘解锁(键盘锁定后,用来恢复键盘的使用)

卸载钩子 (键盘锁定钩子句柄)

.子程序 鼠标解锁, , 公开, 鼠标键解锁(锁定鼠标键锁定后,用来恢复鼠标的使用)

卸载钩子 (鼠标锁定钩子句柄)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-05
其实如果您要是想简单的话 用超级模块 里面的鼠标限制命令!
第2个回答  2012-09-01
我给个简单点的吧,但也不叫禁止鼠标移动,但是你一移动最后位置还是你指定的位置
.版本 2
.支持库 eAPI
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕

.子程序 _时钟1_周期事件
模拟鼠标点击 (50, 50, )
第3个回答  2010-07-06
卸载掉鼠标和键盘的驱动
第4个回答  2010-06-27
禁止鼠标移动很难实现,但禁止打字很简单,比如禁止在编辑框1中打字

.版本 2

.程序集 窗口程序集1

.子程序 _时钟1_周期事件

编辑框1.内容 = “”本回答被网友采纳
相似回答