易语言鼠标钩子(使用易语言怎么设置鼠标全局钩子)
本文目录
- 使用易语言怎么设置鼠标全局钩子
- 易语言安装鼠标钩子 非法关闭的时候会卡死鼠标一会
- 易语言hook 和call是什么意思
- 易语言怎么取鼠标相对于启动窗口的位置
- 易语言钩子
- 易语言安装鼠标钩子,鼠标会卡一下,怎么解决
- 易语言鼠标键盘操作
- 易语言写的鼠标钩子在游戏中无法使用
- 易语言在指定的窗口全屏识字返回坐标怎么写
- 易语言调用罗技鼠标
使用易语言怎么设置鼠标全局钩子
.版本 2
.DLL命令 api_设置系统钩子, 整数型, "user32.dll", "SetWindowsHookExA", , , SetWindowsHookEx
.参数 钩子类型, 整数型, , idHook
.参数 回调函数地址, 整数型, , lpfn
.参数 实例句柄, 整数型, , hmod
.参数 线程ID, 整数型, , dwThreadId
.DLL命令 api_呼叫下一钩子, 整数型, "user32.dll", "CallNextHookEx", , , CallNextHookEx
.参数 钩子句柄, 整数型, , hHook
.参数 回调函数参数1, 整数型, , ncode
.参数 回调函数参数2, 整数型, , wParam
.参数 回调函数参数3, 整数型, , lParam
.DLL命令 api_释放系统钩子, 整数型, "user32.dll", "UnhookWindowsHookEx", , , UnhookWindowsHookEx
.参数 钩子句柄, 整数型, , hHook
.DLL命令 api_取实例句柄, 整数型, , "GetModuleHandleA", , ,
.参数 程序名, 整数型
.DLL命令 api_拷贝内存, 整数型, "kernel32", "RtlMoveMemory", , , RtlMoveMemory
.参数 回调结构, 鼠标结构, , lpvDest
.参数 钩子回调函数参数3, 整数型, , lpvSource
.参数 尺寸, 整数型, , cbCopy
.版本 2
.数据类型 鼠标结构, 公开
.成员 成员1, 整数型
.成员 成员2, 坐标结构
.成员 成员3, 整数型
.数据类型 坐标结构
.成员 x, 整数型
.成员 y, 整数型
.版本 2
.支持库 spec
.程序集 窗口程序集1
.程序集变量 钩子句柄, 整数型
.子程序 _按钮1_被单击
钩子句柄 = api_设置系统钩子 (14, 取子程序地址 (&鼠标钩子回调函数), api_取实例句柄 (0), 0)
.子程序 鼠标钩子回调函数, 整数型
.参数 参数1
.参数 参数2
.参数 参数3
.局部变量 鼠标信息, 鼠标结构
.局部变量 坐标z, 坐标结构
.判断开始 (参数2 = 513)
_启动窗口.标题 = “你按下了鼠标左键”
.默认
.判断结束
.判断开始 (参数2 = 514)
_启动窗口.标题 = “你放开了鼠标左键”
.默认
.判断结束
.判断开始 (参数2 = 516)
_启动窗口.标题 = “你按下了鼠标右键”
.默认
.判断结束
.判断开始 (参数2 = 517)
_启动窗口.标题 = “你放开了鼠标右键”
.默认
.判断结束
.如果真 (参数2 = 512)
api_拷贝内存 (鼠标信息, 参数3, 10)
坐标z = 鼠标信息.成员2
输出调试文本 (“x=” + 到文本 (坐标z.x))
输出调试文本 (“y=” + 到文本 (坐标z.x))
.如果真结束
返回 (api_呼叫下一钩子 (钩子句柄, 参数1, 参数2, 参数3))
.子程序 _按钮2_被单击
api_释放系统钩子 (钩子句柄)
易语言安装鼠标钩子 非法关闭的时候会卡死鼠标一会
把程序弄成一个子程序,然后子程序:启动线程 (&子程序名字 , ),这样运行不会卡!
易语言hook 和call是什么意思
你好,HOOK就是钩子,用于劫持消息,在windows中是这样的,因为win32程序是以消息机制为基础的,比如你点击鼠标,会给窗口传递一个消息,移动鼠标,会给窗口一个消息,用钩子可以比你的窗口先检测到这个消息,从而得到这个消息进行处理,你的窗口可能就处理不到这个消息了,要看你的钩子处理程序是否把这个消息传给窗口,具体看WIN32应用程序开发吧,
而CALL相当于高级语言中的函数调用了,在某一段具有独立功能的程序段前个标号,然后在别的地方Call这个标号即相当于调用这个子函数了。
你想想call 的英语意思是 “呼叫的意思” 程序 中就是 call 加 程序段名
就等于你在呼叫这一段 在汇编中的叫调用
例如 一段 延时程序 名字叫“delay” 你要调用他就 call delay
希望我的回答对你有所帮助!Kiss灬小猪
易语言怎么取鼠标相对于启动窗口的位置
.版本 2
.子程序 鼠标钩子回调函数, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.参数 参数三, 整数型
.局部变量 鼠标, MOUSEHOOKSTRUCT
.局部变量 鼠标键值, 整数型
CopyMemory (鼠标, 参数三, 20)
.判断开始 (参数二 = 512)
标签1.标题 = 到文本 (鼠标.pt.X - _启动窗口.左边 ) + “,” + 到文本 (鼠标.pt.Y - _启动窗口.顶边 )
.默认
.判断结束
返回 (CallNextHookEx (鼠标钩子, 参数一, 参数二, 参数三))
.子程序 __启动窗口_创建完毕
鼠标钩子 = SetWindowsHookEx (14, &鼠标钩子回调函数, GetModuleHandle (0), 0)
.子程序 __启动窗口_将被销毁
UnHookWindowsHookEx (鼠标钩子)
.版本 2
.数据类型 MOUSEHOOKSTRUCT
.成员 pt, POINT
.成员 hwnd, 整数型
.成员 wHitTestCode, 整数型
.成员 dwExtraInfo, 整数型
.版本 2
.DLL命令 GetModuleHandle, 整数型, , "GetModuleHandleA", , , 获取句柄
.参数 lpModuleName, 整数型
.DLL命令 CallNextHookEx, 整数型, , "CallNextHookEx", , , 下一个钩子
.参数 hhk, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 SetWindowsHookEx, 整数型, , "SetWindowsHookExA", , , 创建钩子
.参数 idHook, 整数型
.参数 lpfn, 子程序指针
.参数 hmod, 整数型
.参数 dwThreadId, 整数型
.DLL命令 UnHookWindowsHookEx, 逻辑型, , "UnhookWindowsHookEx", , , 卸载钩子
.参数 hhk, 整数型
.DLL命令 WindowFromPoint, 整数型, "user32", "WindowFromPoint", , , 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口 包含了指定点的窗口的句柄。如指定的点处没有窗口存在,则返回零
.参数 xPoint, 整数型, , x点值
.参数 yPoint, 整数型, , y点值;
.DLL命令 CopyMemory, , , "RtlMoveMemory", , , 拷贝内存
.参数 Destination, MOUSEHOOKSTRUCT, 传址
.参数 Source, 整数型
.参数 Length, 整数型
易语言钩子
简单来说钩子就是系统触发一定事件下要进行操作的函数,但是不同的事件会有不同的附加信息,所以根据不同的事件也会在那个三个参数中传递不同的附加内容,就是处理方法的结构必须和系统定义好的结构相同才可以
下面是附加资料可以看一下
------------------------------------------------------------------------------------------------
首先说明一点,你的问题问得不是很恰当,因为钩子函数是回调函数,由系统规定参数,并传递参数,由你写好内容,然后由系统在一定触发条件下调用
例如你建立的是WH_MOUSE钩子, 那么MouseProc的三个参数由操作系统(实际上是WIN32 平台)传递进来,意义分别是nCode怎么处理消息, wParam消息标识, lParam是一个MOUSEHOOKSTRUCT结构指针,而我们要做的就是利用这三个参数来完成自己想实现的功能,这正是回调函数的意义!
一般做钩子用到三个函数, 主要解决的是钩子函数的定义:
钩子有局部和远程两种类型, 与钩子相关的函数有:
1. 建立钩子:SetWindowsHookEx, 其四个参数分别为钩子类型, 钩子函数地址, 钩子函数所在DLL的实例句柄,安装钩子后想监控的线程的ID号, 返回参数为钩子句柄
2. UnhookWindowsHookEx, 参数只有一个,为要卸载的钩子句柄
3. 钩子函数(名称任意), 三个参数, 具体意义与钩子类型有关
下面再举一个简单例子:
比如你想写一个程序, 当鼠标移到哪里时就在主程序中显示鼠标所在窗口的名称
--------------------
(1)如果鼠标只是局限在窗口内, 那么以上1, 2, 3三个函数均写在运行的主程序中, 比如函数1可以写在按下某个按钮的消息响应函数中,函数 2 写在松开按扭的消息响应函数中,函数 3 只要不写在别的函数中就行, 因为它本生就是一个要定义的独立函数
(2)如果鼠标可以在屏幕任意位置移动, 那么以上函数1, 2位置同(1), 但函数3要写在一个另外写的DLL里, 因为此时安装的是全局钩子, 为了达到获取窗口名称的目的, 在DLL里可能还要做一些其他工作,比如设置共享段, 关于这些这里不细说了
------------------------
如果你想问的是如何填充SetWindowsHookEx的参数 或 钩子函数的三个参数的具体意义, 那么可以参考MSDN, 因为参数与钩子类型, 要挂钩的消息有关
易语言安装鼠标钩子,鼠标会卡一下,怎么解决
安装前让启动窗口可视=假
(在属性表里写,见上图)
安装前再 可视=真
呵呵,是不是不会卡了?我也不知道是怎么回事 -、-|||
另外在
__启动窗口_首次激活
中直接写 SetWindowsHookExA 也可以达到鼠标不卡的效果额~
无间断、无间断、无间断……
看看其他的消息值:
另外还有512=鼠移动 522=鼠滚轮
易语言鼠标键盘操作
你说的这些易语言本身就有自己的命令,还用钩子做什么?
模拟鼠标点击 (整数型 X坐标,整数型 Y坐标,[整数型 点击类型]) - 应用接口支持库-》系统处理
英文名称:SimulateMouse
模拟鼠标的点击。本命令为初级命令。
参数《1》的名称为“X坐标”,类型为“整数型(int)”。
参数《2》的名称为“Y坐标”,类型为“整数型(int)”。
参数《3》的名称为“点击类型”,类型为“整数型(int)”,可以被省略。模拟鼠标点击的类型,可以为以下常量值之一:0、#接口常量.左键单击;1、#接口常量.左键双击;2、#接口常量.右键单击;3、#接口常量.右键双击。
模拟按键 (通用型 虚拟键值1,[通用型 虚拟键值2],[通用型 虚拟键值3]) - 应用接口支持库-》系统处理
英文名称:SimulateKey
模拟键盘的输入。本命令为初级命令。
参数《1》的名称为“虚拟键值1”,类型为“通用型(all)”。
参数《2》的名称为“虚拟键值2”,类型为“通用型(all)”,可以被省略。
参数《3》的名称为“虚拟键值3”,类型为“通用型(all)”,可以被省略。
易语言写的鼠标钩子在游戏中无法使用
调用的鼠标钩子是不是没有执行啊,比如没有进入到程序的消息循环里,或者是系统的消息循环里,这个要在队列里,系统识别出来才行。对不对,肯定是因为出现了一些。才导致了这个样子,你可以再重新试一下,或者调整一下,不要他的。
易语言在指定的窗口全屏识字返回坐标怎么写
易语言在指定的窗口全屏识字返回坐标需要鼠标钩子客户区坐标回调,整数型,,获取鼠标客户区的坐标。判断开始(参数一=512),a.x=取鼠标水平位置,a.y=取鼠标垂直位置,ScreenToClient(取鼠标所在窗口句柄(),a),x=a.x,y=a.y,标签1.标题=到文本(x)+,+到文本(y)。
易语言调用罗技鼠标
易语言调用罗技鼠标
调用API来进行监视鼠标状态——判断鼠标哪个键按下与放开
1、新建一个“易语言”窗口程序
2、API命令可下载易语言API编程助手进行查询
我们需要的API命令有
CallNextHookEx——呼叫下一钩子
SetWindowsHookExA——安装系统钩子
UnhookWindowsHookEx——卸载系统钩子
不同翻译的翻译结果也不同,大致了解下就可以了
3、还有一个API命令
GetModuleHandleA——取实例句柄
用来取窗口句柄的
4、对了,API的参数类型要改下,DLL命令如下: