精易论坛

标题: 注册全局热键 用鼠标键 左键 按下 问题,怎么显示错误! [打印本页]

作者: 秋霁    时间: 2014-5-26 14:02
标题: 注册全局热键 用鼠标键 左键 按下 问题,怎么显示错误!
.版本 2
注册全局热键 (取窗口句柄 (), , 鼠标键 (#左键_, #按下_), &_超级按钮1_被单击)

怎么是 “错误(10066): 用作提供参数数据的子语句未返回数据。”


QQ截图20140526135511.jpg (13 KB, 下载次数: 0)

QQ截图20140526135511.jpg

作者: 不得不爱2    时间: 2014-5-26 14:02
.版本 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_释放系统钩子 (钩子句柄)
作者: 秋霁    时间: 2014-5-26 14:03
应该要 怎么写 才对啊。。。。
作者: 不得不爱2    时间: 2014-5-26 14:26
注册全局热键只能是键盘,不能是鼠标,你想让鼠标操作只对你的程序有效吗?
作者: 秋霁    时间: 2014-5-26 14:34
不得不爱2 发表于 2014-5-26 14:26
注册全局热键只能是键盘,不能是鼠标,你想让鼠标操作只对你的程序有效吗?

是要对游戏窗口有效呀,
作者: 不得不爱2    时间: 2014-5-26 14:35
那你只能用鼠标全局钩子,但是一般的杀毒软件都会报毒的,最好还是注册键盘热键
作者: 秋霁    时间: 2014-5-26 14:48
不得不爱2 发表于 2014-5-26 14:35
那你只能用鼠标全局钩子,但是一般的杀毒软件都会报毒的,最好还是注册键盘热键

注册键盘热键 不方便呀,鼠标全局钩子有没有例子呀。没有其它办法了吗?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4