易语API监视鼠标状态教学
<p>调用API来进行监视鼠标状态——判断鼠标哪个键按下与放开</p><p>1、新建一个“易语言”窗口程序</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132819.png" /></p>
<p>2、API命令可下载易语言API编程助手进行查询</p>
<p>我们需要的API命令有</p>
<p>CallNextHookEx——呼叫下一钩子</p>
<p>SetWindowsHookExA——安装系统钩子</p>
<p>UnhookWindowsHookEx——卸载系统钩子</p>
<p>不同翻译的翻译结果也不同,大致了解下就可以了</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132820.png" /></p>
<p>3、还有一个API命令</p>
<p>GetModuleHandleA——取实例句柄</p>
<p>用来取窗口句柄的</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132821.png" /></p>
<p>4、对了,API的参数类型要改下,DLL命令如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2
.DLL命令 安装系统钩子, 整数型, "user32.dll", "SetWindowsHookExA", , , SetWindowsHookEx
.参数 钩子类型, 整数型, , idHook
.参数 回调函数地址, 子程序指针, , lpfn
.参数 实例句柄, 整数型, , hmod
.参数 线程ID, 整数型, , dwThreadId
.DLL命令 取实例句柄, 整数型, , "GetModuleHandleA", , ,
.参数 程序名, 整数型
.DLL命令 卸载系统钩子, 整数型, "user32.dll", "UnhookWindowsHookEx", , , UnhookWindowsHookEx
.参数 钩子句柄, 整数型, , hHook
.DLL命令 呼叫下一钩子, 整数型, "user32.dll", "CallNextHookEx", , , CallNextHookEx
.参数 钩子句柄, 整数型, , hHook
.参数 代码值, 整数型, , ncode
.参数 附加参数1, 整数型, , wParam
.参数 附加参数2, 整数型, 传址, lParam
</pre>
</div>
<p></p>
<p>直接复制然后粘贴就可以了,系统会自动写入DLL命令的</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132822.png" /></p>
<p>5、然后就可以输入代码了</p>
<p>变量都是中文的,这样应该就可以明白变量的含义了</p>
<p>代码如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.子程序 启动监视
钩子句柄 = 到整数 (安装系统钩子 (14, &钩子处理, 取实例句柄 (0), 0))
' 安装系统钩子——安装和卸载和注册热键与注销热键相似的,只是类型不同
.子程序 结束监视
.如果真 (钩子句柄 ≠ 0) ' 检测钩子句柄——如果不检测直接卸载可能会出现问题
卸载系统钩子 (钩子句柄)
.如果真结束
.子程序 钩子处理, 整数型
.参数 代码值, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
' 参数一 也就是 键代码——不过是API里面的,不能直接用
.判断开始 (参数一 = 519) ' 鼠标中键按下的参数
调试输出 (“中键按下”)
.判断 (参数一 = 520) ' 鼠标中键放开的参数
调试输出 (“中键放开”)
.判断 (参数一 = 513) ' 鼠标左键按下的参数
调试输出 (“左键按下”)
.判断 (参数一 = 514) ' 鼠标左键放开的参数
调试输出 (“左键放开”)
.判断 (参数一 = 516) ' 鼠标右键按下的参数
调试输出 (“右键按下”)
.判断 (参数一 = 517) ' 鼠标右键放开的参数
调试输出 (“右键放开”)
.默认
.判断结束
返回 (呼叫下一钩子 (钩子句柄, 代码值, 参数一, 参数二)) ' 返回值——用来返回,不然子程序 钩子处理 没有返回值
.子程序 __启动窗口_创建完毕
启动监视 () ' 调用子程序 启动监视
.子程序 __启动窗口_可否被关闭, 逻辑型
结束监视 () ' 调用子程序 结束监视
</pre>
</div>
<p style="text-align: left"></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132823.png" /></p>
<p>6、然后F5运行看看效果</p>
<p>如果360出现安全警告,直接点击允许就可以了</p>
<p>刚运行的时候可能会有点卡,那是在安装系统钩子,等会就不卡了</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132924.png" /></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/2019011014132925.png" /></p>
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>易语言模拟鼠标点击实现方法</li><li>易语言查找指定颜色并将鼠标移动到指定坐标的代码</li><li>易语言键盘钩子与鼠标钩子的状态参数值表</li><li>易语言利用鼠标模拟点击的方式实现自动画图的代码</li><li>易语言仿按键精灵录制键盘鼠标操作的代码</li><li>易语言设置鼠标移动到组件上时的文本显示颜色</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]