循环 x 次,使用 AutoHotKey 以 x 作为参数
Loop x amount of times, with x as a parameter using AutoHotKey
我创建了一个点击屏幕特定部分的小功能。它将被使用,但在整个程序中被点击的次数不同。我希望能够输入点击次数作为参数,但是,当我尝试这样做而不是硬编码时,部分代码没有 运行 并且屏幕没有显示的循环次数点击。
注意函数 ClickMainBuilding 在定义中的变化以及下面的调用方式
这是有效的:
; ######## SETTINGS ########
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
; ######## FUNCTIONS ########
ClickMainBuilding(){
Loop, 5
{
Click, 927, 538 Left, , Down
Sleep, 250
Click, 927, 538 Left, , Up
Sleep, 250
}
}
ClickTradeDepot(){
Click, 420, 705
Sleep, 750
}
ExitTradeDepot(){
Click, 1512, 129
Sleep, 750
}
^!u:: ; ### MAIN ###
WinActivate, ahk_class ThumbnailDeviceHelperWnd
Sleep, 333
WinActivate, BlueStacks ahk_class HwndWrapper[Bluestacks.exe;;5b32fde4-2355-48c5-be51-8927697e9914]
Sleep, 500
ClickMainBuilding()
Sleep, 1000
ClickTradeDepot()
Sleep, 1000
ExitTradeDepot()
Return
Esc::ExitApp ; Exit script with Escape key
这里没有:
; ######## SETTINGS ########
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
; ######## FUNCTIONS ########
ClickMainBuilding(x){
Loop, x
{
Click, 927, 538 Left, , Down
Sleep, 250
Click, 927, 538 Left, , Up
Sleep, 250
}
}
ClickTradeDepot(){
Click, 420, 705
Sleep, 750
}
ExitTradeDepot(){
Click, 1512, 129
Sleep, 750
}
^!u:: ; ### MAIN ###
WinActivate, ahk_class ThumbnailDeviceHelperWnd
Sleep, 333
WinActivate, BlueStacks ahk_class HwndWrapper[Bluestacks.exe;;5b32fde4-2355-48c5-be51-8927697e9914]
Sleep, 500
ClickMainBuilding(5)
Sleep, 1000
ClickTradeDepot()
Sleep, 1000
ExitTradeDepot()
Return
Esc::ExitApp ; Exit script with Escape key
Loop
将需要迭代的次数作为第一个参数。如果你放5
,那么AHK把这个5
转换成一个整数,然后迭代5次
在您的代码中,您编写了 Loop, x
,它告诉 AHK 总共循环 x
次。然而与 5
不同的是,x
不能转换为整数,所以 AHK 可能会抛出错误。为了指定变量 x
,而不是使用它的值作为迭代量,您需要指定这个特定的 x
实际上是一个变量。您可以这样做:
; BOTH OF THESE EXAMPLES WORK
; Legacy
Loop, %x%
; Newest
Loop, % x
我创建了一个点击屏幕特定部分的小功能。它将被使用,但在整个程序中被点击的次数不同。我希望能够输入点击次数作为参数,但是,当我尝试这样做而不是硬编码时,部分代码没有 运行 并且屏幕没有显示的循环次数点击。
注意函数 ClickMainBuilding 在定义中的变化以及下面的调用方式
这是有效的:
; ######## SETTINGS ########
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
; ######## FUNCTIONS ########
ClickMainBuilding(){
Loop, 5
{
Click, 927, 538 Left, , Down
Sleep, 250
Click, 927, 538 Left, , Up
Sleep, 250
}
}
ClickTradeDepot(){
Click, 420, 705
Sleep, 750
}
ExitTradeDepot(){
Click, 1512, 129
Sleep, 750
}
^!u:: ; ### MAIN ###
WinActivate, ahk_class ThumbnailDeviceHelperWnd
Sleep, 333
WinActivate, BlueStacks ahk_class HwndWrapper[Bluestacks.exe;;5b32fde4-2355-48c5-be51-8927697e9914]
Sleep, 500
ClickMainBuilding()
Sleep, 1000
ClickTradeDepot()
Sleep, 1000
ExitTradeDepot()
Return
Esc::ExitApp ; Exit script with Escape key
这里没有:
; ######## SETTINGS ########
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
; ######## FUNCTIONS ########
ClickMainBuilding(x){
Loop, x
{
Click, 927, 538 Left, , Down
Sleep, 250
Click, 927, 538 Left, , Up
Sleep, 250
}
}
ClickTradeDepot(){
Click, 420, 705
Sleep, 750
}
ExitTradeDepot(){
Click, 1512, 129
Sleep, 750
}
^!u:: ; ### MAIN ###
WinActivate, ahk_class ThumbnailDeviceHelperWnd
Sleep, 333
WinActivate, BlueStacks ahk_class HwndWrapper[Bluestacks.exe;;5b32fde4-2355-48c5-be51-8927697e9914]
Sleep, 500
ClickMainBuilding(5)
Sleep, 1000
ClickTradeDepot()
Sleep, 1000
ExitTradeDepot()
Return
Esc::ExitApp ; Exit script with Escape key
Loop
将需要迭代的次数作为第一个参数。如果你放5
,那么AHK把这个5
转换成一个整数,然后迭代5次
在您的代码中,您编写了 Loop, x
,它告诉 AHK 总共循环 x
次。然而与 5
不同的是,x
不能转换为整数,所以 AHK 可能会抛出错误。为了指定变量 x
,而不是使用它的值作为迭代量,您需要指定这个特定的 x
实际上是一个变量。您可以这样做:
; BOTH OF THESE EXAMPLES WORK
; Legacy
Loop, %x%
; Newest
Loop, % x