Function 循环x次数,使用自动热键将x作为参数
我创建了一个小功能,可以点击屏幕的某一部分。它将被使用,但在整个程序中单击的次数不同。我希望能够输入点击量作为一个参数,但是,当我尝试这样做,而不是硬编码循环的数量,这部分代码没有运行,屏幕没有得到点击 请注意对函数ClickMainBuilding的更改,定义如下 以下是有效的方法:Function 循环x次数,使用自动热键将x作为参数,function,loops,parameters,macros,autohotkey,Function,Loops,Parameters,Macros,Autohotkey,我创建了一个小功能,可以点击屏幕的某一部分。它将被使用,但在整个程序中单击的次数不同。我希望能够输入点击量作为一个参数,但是,当我尝试这样做,而不是硬编码循环的数量,这部分代码没有运行,屏幕没有得到点击 请注意对函数ClickMainBuilding的更改,定义如下 以下是有效的方法: ; ######## SETTINGS ######## #SingleInstance Force #NoEnv SetWorkingDir %A_ScriptDir% CoordMode, Mouse, Wi
; ######## 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
循环
将需要迭代的次数作为第一个参数。如果您将5
,则AHK将该5
转换为整数,然后迭代5次
在代码中,您编写了循环,x
,它告诉AHK循环总共x
次。但是与5
不同,x
不能转换为整数,因此AHK可能会抛出错误。为了指定变量x
,并将其值用作迭代量,您需要指定此特定x
实际上是一个变量。您可以这样做:
; BOTH OF THESE EXAMPLES WORK
; Legacy
Loop, %x%
; Newest
Loop, % x
将
循环,x
更改为循环,%x