|
|

60精币
setwindowshookex 安装完钩子后,游戏窗口会有点卡,感觉是回调运行太慢了,有没有更效率点的方法。回调如下: |
| CallWndProc | 整数型 | | |
| nCode | 整数型 | | | | wParam | 整数型 | | | | lParam | 整数型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | pArg | CWPSTRUCT | | | | 字节集 | 字节集 | | | | 字节集1 | 字节集 | | | | 数据 | COPYDATASTRUCT_string | | | | 文本 | 文本型 | | | | 文本数组 | 文本型 | | 0 |
如果真 (nCode = #HC_ACTION ) 字节集 = 指针到字节集 (lParam, 1024 ) pArg.hwnd = 取字节集数据 (字节集, #整数型, 13 ) pArg.lParam = 取字节集数据 (字节集, #整数型, 1 ) pArg.wParam = 取字节集数据 (字节集, #整数型, 5 ) pArg.message = 取字节集数据 (字节集, #整数型, 9 ) 判断 (pArg.message = #按键 且 pArg.hwnd = 窗口句柄 )  按键Call (pArg.lParam ) 判断 (pArg.message = #lUA 且 pArg.hwnd = 窗口句柄 )   LUACall (pArg.wParam, pArg.lParam ) 判断 (pArg.message = #采集 且 pArg.hwnd = 窗口句柄 )  采集Call (pArg.lParam ) 判断 (pArg.message = #存仓 且 pArg.hwnd = 窗口句柄 )  存仓Call (pArg.lParam ) 判断 (pArg.message = #丢弃 且 pArg.hwnd = 窗口句柄 )  丢弃Call (pArg.lParam ) 判断 (pArg.message = #喊话 且 pArg.hwnd = 窗口句柄 )  喊话Call (pArg.lParam ) 判断 (pArg.message = #捡物 且 pArg.hwnd = 窗口句柄 )  捡物Call (pArg.lParam ) 判断 (pArg.message = #选怪 且 pArg.hwnd = 窗口句柄 )  选怪Call (pArg.lParam ) 判断 (pArg.message = #对话NPC 且 pArg.hwnd = 窗口句柄 )  对话Call (pArg.lParam ) 判断 (pArg.message = #打开摊位 且 pArg.hwnd = 窗口句柄 )  打开摊位Call (pArg.lParam ) 判断 (pArg.message = #卖出物品 且 pArg.hwnd = 窗口句柄 )  卖出物品Call (pArg.lParam ) 判断 (pArg.message = #二级对话NPC 且 pArg.hwnd = 窗口句柄 )  二级对话Call (pArg.wParam, pArg.lParam ) 判断 (pArg.message = #卸载hook 且 pArg.hwnd = 窗口句柄 ) 卸载hook ()  判断 (pArg.message = #WM_COPYDATA 且 pArg.hwnd = 窗口句柄 )   判断 (pArg.wParam = #所有数据 )   字节集1 = 指针到字节集 (pArg.lParam, 1024 )   数据.dwData = 取字节集数据 (字节集1, #整数型, 1 )   数据.cbData = 取字节集数据 (字节集1, #整数型, 5 )   数据.lpData = 取字节集数据 (字节集1, #整数型, 9 )   文本 = 到文本 (指针到字节集 (数据.lpData, 数据.cbData ))          文本数组 = 分割文本 (文本, “|”, )   所有数据.Luacall = 到整数 (文本数组 [1 ])   所有数据.选怪call = 到整数 (文本数组 [2 ])   所有数据.捡物call = 到整数 (文本数组 [3 ])   所有数据.采集call = 到整数 (文本数组 [4 ])   所有数据.卖出call = 到整数 (文本数组 [5 ])   所有数据.发包call = 到整数 (文本数组 [6 ])   所有数据.按键call = 到整数 (文本数组 [7 ])   所有数据.LuaEax值 = 到整数 (文本数组 [8 ])   所有数据.发包ECX值 = 到整数 (文本数组 [9 ])   所有数据.发包EAX值 = 到整数 (文本数组 [10 ])   所有数据.寻路ECX值 = 到整数 (文本数组 [11 ])   所有数据.丢弃EAX值 = 到整数 (文本数组 [12 ])   所有数据.卖出EAX值 = 到整数 (文本数组 [13 ])   所有数据.按键ecx值 = 到整数 (文本数组 [14 ])   所有数据.存仓EAX值 = 到整数 (文本数组 [15 ])   所有数据.对话npccall = 到整数 (文本数组 [16 ])   所有数据.自动寻路call = 到整数 (文本数组 [17 ])   所有数据.二级对话call = 到整数 (文本数组 [18 ])   所有数据.打开摊位call = 到整数 (文本数组 [19 ])   所有数据.二级对话ECX值 = 到整数 (文本数组 [20 ])  判断 (pArg.wParam = #寻路 )   字节集1 = 指针到字节集 (pArg.lParam, 1024 )   数据.dwData = 取字节集数据 (字节集1, #整数型, 1 )   数据.cbData = 取字节集数据 (字节集1, #整数型, 5 )   数据.lpData = 取字节集数据 (字节集1, #整数型, 9 )   文本 = 到文本 (指针到字节集 (数据.lpData, 数据.cbData ))          文本数组 = 分割文本 (文本, “|”, )  寻路Call (到整数 (文本数组 [3 ]), 到整数 (文本数组 [2 ]), 到整数 (文本数组 [1 ]))           判断 (pArg.message = #放弃任务 且 pArg.hwnd = 窗口句柄 )  放弃任务Call (pArg.lParam )     返回 (CallNextHookEx (m_hook, nCode, wParam, lParam))
|
最佳答案
查看完整内容
这种问题随便瞅瞅也能看出来。。。。。
[e=2].版本 2
.子程序 CallWndProc, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.局部变量 pArg, CWPSTRUCT
.局部变量 字节集, 字节集
.局部变量 字节集1, 字节集
.局部变量 数据, COPYDATASTRUCT_string
.局部变量 文本, 文本型
.局部变量 文本数组, 文本型, , "0"
.如果真 (nCode = #HC_ACTION)
字节集 = 指针到字节集 (lParam, 1024)
pArg.messa ...
|