怎样利用AHK写出可后台操作游戏的取色脚本(把游戏最小化或者有其他窗口挡在游戏窗口前还能操作的脚本)
然后有个问题想问一下 这mousemove是鼠标移动 那怎么改能直接不让鼠标移动直接点击坐标位置呢
谢谢
当前脚本(网上找的):
HOME:: ;home
if(a:=!a)
{
SetTimer,guaji,1
}
else
{
SetTimer,guaji,off
}
Return
guaji:
{
if (GetColor(1022,1000)=="0xCB110B") ;检测1技能是否启动
{
send {z}
send {v}
}
if (GetColor(20,1067)=="0x000000") ;瞎点
{
mousemove 1142,225
click,1
Sleep 100
mousemove 810,632
click,1
Sleep 100
mousemove 823,514
click,1
Sleep 100
mousemove 61,602
click,1
Sleep 100
mousemove 973,900
click,1
Sleep 100
}
}
Return
F9:: ;F10是热键,按F1触发下?取色的功能,下面是取色脚本
MouseGetPos, mouseX, mouseY
;获取?标的横坐标和纵坐标赋值给mouseX和mouseY
PixelGetColor, color, %mouseX%, %mouseY%, RGB
;获取横坐标和纵坐标(即mouseX和mouseY)的颜?值并赋值给color
clipboard = (%mouseX%,%mouseY%)=="%color%"
;复制(?便粘贴数据) mouseX,mouseY==color
tooltip, %mouseX%,%mouseY%颜?是:%color%?标所在XY值和颜?值已发送到剪贴板。`n5秒后?动消失`n请粘贴到指定位置`n
sleep 5000 ;休眠5秒让tip显?5秒
tooltip ;5秒后去掉浮框提?
return ;结束
GetColor(x,y) ;自定义函数GetColor:即用于获取坐标(X,Y)色值
{
PixelGetColor, color, x, y, RGB ;获取指定的 x, y 坐标处像素的颜色到color变量内,格式为RGB
StringRight color,color,10 ;从第二个变量color的右边提取10个字符到第一个变量color.例0x111111一共只有8个字符,超过字符长度则会提取完整内容
return color ;返回变量color
}
要实现在后台操作游戏的取色和点击功能,你可以使用AHK中的PixelGetColor和ControlClick等函数。下面是修改后的代码,其中修改了鼠标移动为点击指定位置:
#SingleInstance force
#Persistent
SetTimer, guaji, 10
guaji:
IfWinExist, ahk_exe yourgame.exe
{
WinActivate
WinWaitActive
; 检测1技能是否启动
if (PixelGetColor(1022, 1000) = "0xCB110B")
{
Send, {z}
Send, {v}
}
; 点击指定位置
ControlClick, x1142 y225, ahk_exe yourgame.exe
Sleep, 100
ControlClick, x810 y632, ahk_exe yourgame.exe
Sleep, 100
ControlClick, x823 y514, ahk_exe yourgame.exe
Sleep, 100
ControlClick, x61 y602, ahk_exe yourgame.exe
Sleep, 100
ControlClick, x973 y900, ahk_exe yourgame.exe
}
Return
; F9触发下面的取色脚本
F9::
MouseGetPos, mouseX, mouseY
PixelGetColor, color, %mouseX%, %mouseY%, RGB
clipboard = (%mouseX%,%mouseY%)=="%color%"
tooltip, %mouseX%,%mouseY%颜色是:%color%。坐标和颜色已发送到剪贴板。`n5秒后自动消失`n请粘贴到指定位置`n
sleep 5000
tooltip
return
需要注意的是,此脚本仅适用于特定的游戏窗口名称,需要将"yourgame.exe"替换为你自己的游戏窗口名称。