我没用过大话西游,说一下我的想法
可能是主窗口是封装在一个Frame里了,你用SPY++获得那个框架的句柄(如果,果真是封装在了Frame的话),然后在SPY++中切换到标签选项卡(SPY++22),去掉"窗口可见"勾选,这样就剥离掉了Frame的封装,然后你就可以继续用SPY++获得其内部控件的句柄了
一般就是用这个方法了,QQ登陆框也是这样的,号码框和密码框还有软键盘都封在Frame里了,只要隐藏到那个Frame,里面的控件就无可遁形了
要获得窗体/控件的句柄 你先用SPY++获得它的类名,如任务栏类名为 "Shell_TrayWnd",然后用FindWindow即可获得其句柄,如任务栏句柄
hWnd=FindWindow("Shell_TrayWnd", vbNullString)
其他窗体也是一样,只要用SPY++选获得窗体(或父窗体)类名,便可以步步用FindWindow或FindWindowEx获得其句柄
有几个原因,一是游戏设置的显卡驱动方式与大漠设置的不一样或者不兼容。二是系统配置受不了绑定时的超高资源占用。三是大漠设置的绑定方式对游戏免疫等等。目前最好的办法是每个绑定方式都测试一遍,游戏的显卡驱动方式也更改几次测试,测试到好为止。当然,问同行是最快的,问他们怎样绑定的。
很简单啊,你看上面 声明的变量是 获取游戏句柄
也就是下面这行
程序集变量 获取游戏句柄, 整数型
而你真正用的是 游戏窗口句柄
当然找不到
把 游戏窗口句柄 改成 获取游戏句柄 就没问题了
试一试autohotkey AutoHotKey在BD能搜索到。 安装运行后右键点击系统托盘滴图标,选择editthisscript,打开记事本,删除原来滴文字,输入以下代码并保存: WinGet,wowid,List,魔兽世界 ~1:: KeyWait1 IfWinActive,魔兽世界 { ControlSend,,1,ahk_idwowid1 ControlSend,,1,ahk_idwowid2 ControlSend,,1,ahk_idwowid3 ControlSend,,1,ahk_idwowid4 ControlSend,,1,ahk_idwowid5 Return } 这个系5开代码,1~5对应5个窗口,热键为1键,当第一个窗口输入1时,其TA4个窗口仍同时输入1。如果要设定其TA热键只要复制代码~1开始到},把1改为其TA键即可。如果双开则只要保留1~2,3~5这3行可以删除。 代码设置好老再右击图标,选择Reloadthisscript。测试下来要先打开autohotkey软件,再开wow,然后Reload,否则容易出错。 游戏人物设置,第一个人物可以按普通游戏设置,其TA4个窗口滴人物技能必须用宏,关键滴系3条: 第一行/assistplayer(主窗口人物名) 第2行/cast技能名 第3行/followplayer(主窗口人物名) 这样在游戏中就能实现按下1个键同时控制5个人施法并让其TA4个人跟随主窗口人物。
试试这3个,自动获取句柄的
Hwnd = PluginWindowForeground()//当前窗口获取
Hwnd = PluginWindowMousePoint()//鼠标位置获取
Hwnd = PluginWindowSearch("记事本")//标题模糊查找获取
以上就是关于如何获取网游子窗口的句柄(spy++只能获取主窗口句柄)全部的内容,包括:如何获取网游子窗口的句柄(spy++只能获取主窗口句柄)、按键精灵使用大漠的获取窗口句柄崩溃 是怎么回事、我的易语言错误(30): 找不到指定的变量名称“游戏窗口句柄”怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)