谁能帮我完成一下啊按键精灵后台脚本,自动获取窗口句柄,自动生效。

谁能帮我完成一下啊按键精灵后台脚本,自动获取窗口句柄,自动生效。,第1张

把这加进去

HwndEx = PluginWindowSearch("")

MyArrays = Split(HwndEx, "|")

i=0

For UBound(MyArrays)

sRect = PluginWindowGetClientRect(MyArrays(i))

MyArray = Split(sRect, "|")

R = Clng(MyArray(2)) : B = Clng(MyArray(3))

If R = 470 and B = 369 Then '修改这里窗口大小(用爪爪看那窗口的总大小,)

MessageBox "我是句柄:"& MyArrays(i)

End If

i=i+1

Next

这个只能让它自己报句柄,,,。然后让他在这句柄里自动运行我也不知道怎么弄,我也在学,如果你知道怎么弄了,可以告诉我吗?Q-Q-237-218267,谢谢!

录制的脚本想要后台 *** 作需要大量工作量。

PluginHwnd=WindowGetKeyFocusWnd()

首先需要这个语句找到当前游戏窗口句柄

PluginWindowSendKeyPress(Hwnd,)

然后用这个语句执行后台键盘按键,鼠标左键按键的话是把SendKeyPress(Hwnd,)

改成LeftClick(Hwnd,x,y)

键盘按键中的:??代表的意思是→键盘的按键码,输入相应的按键码才行

而鼠标按键中的x,y分别代表鼠标相对屏幕的x轴坐标和y轴的坐标以左上角为起点。也就是说和你学的数学的y轴参数负的变成了正的。其他同理

但你现在自己录制的脚本,也就是说在每个要按键的代码前面加上PluginWindow←这个语句就是执行后台命令。那你说你录制的脚本有多长?你要找出多少个按键命令?我想你应该是不会按键精灵才会用录制去搞的吧?所以问题的关键在于就算你愿意花功夫也还不知道您找不找的来。所以实话告诉你,要实现后台录制的可能几乎为0。如果你的确是需要后台按某几个键的话我可以帮你完成,太复杂的话我也没心情搞,这种没功劳的事情谁都不太想干。

试一试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个人跟随主窗口人物。

命令名称: Search 遍历符合窗口

命令功能: 遍历符合窗口标题的句柄保存到数组里

命令参数: 参数1 字符串型,窗口符合的标题

返 回 值: 字符串型,句柄数组

脚本例子:

(8x语法) 复制代码

//下面这句是遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里

HwndEx = PluginWindowSearch("记事本")

MsgBox "查找到符合的窗口句柄为:"&HwndEx

//下面这句用于分割字符串,将获得的句柄组分割

dim MyArray

MyArray = Split(HwndEx, "|")

If UBound(MyArray)>=0 Then

i=0

For UBound(MyArray)

//下面这句将字符串转换成数值

Msgbox "第 "&i+1 &" 个窗口句柄为:"&Clng(MyArray(i))

i=i+1

Next

End If

脚本例子:

(7x语法) 复制代码

//下面这句是遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里

Plugin HwndEx = WindowSearch("记事本")

MsgBox "查找到符合的窗口句柄为:"&HwndEx

//下面这句用于分割字符串,将获得的句柄组分割

MyArray = Split(HwndEx, "|")

If UBound(MyArray)>=0

i=0

For UBound(MyArray)

//下面这句将字符串转换成数值

Msgbox "第 "&i+1 &" 个窗口句柄为:"&Clng(MyArray(i))

i=i+1

EndFor

EndIf

看你给60分,给你回答详细一些。

所谓的后台运行,就是锁定一个窗口进行 *** 作,可以被遮盖,但是不能最小化和关闭。比如你是要找图,你的范围是整个屏幕的0,0,1024,768。当后台 *** 作时。这个坐标就是在绑定的窗口里的坐标。所以无论你怎么移动窗口,都不会对找图范围产生影响。

句柄是窗口的一个临时ID。窗口关闭再打开后,会变化。你可以使用按键精灵的抓抓工具,直接得到当前的句柄。想让命令永久有效,就要通过标题或者类名等,得到句柄。在按键精灵中的window窗口插件  中可以使用这些命令。

如:

Plugin Hwnd = WindowFind("Notepad", 0)

Notepad是记事本的类名。就可以直接得到运行中记事本的句柄,返回到Hwnd变量。

再具体真的没法说了,建议自己多去尝试研究。不会的可以找我学习

//专业脚本作者回答

第一点 后台句柄是动态的 这次你打开是这个句柄值下次打开就变了

第二点 按键抓抓只是参考数据的 没有生成代码功能

根据你的提问提供一下找色代码方式

Hwnd="" //输入句柄值 双引号去掉 例子Hwnd=123456(前提是句柄值是固定不变的)

//Hwnd = PluginWindowMousePoint() ←一般句柄值获取都是用这条代码的

颜色值十六进制=GetPixelColor(10,5)

颜色值十六进制= PluginBkgndGetPixelColor(Hwnd, 0, 0)

If 颜色值十六进制="FFFFFF" Then

MessageBox ""

End If

以上就是关于谁能帮我完成一下啊按键精灵后台脚本,自动获取窗口句柄,自动生效。全部的内容,包括:谁能帮我完成一下啊按键精灵后台脚本,自动获取窗口句柄,自动生效。、在按键精灵里录制了一个脚本,怎么能让它在游戏窗口内后台 *** 作、获取游戏窗口句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9415607.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存