我在 sof 上看到过类似的话题,但它的解决方案对我没有帮助。这是我的想法,基本上我想要的是有一些访问和修改值的方法,该值将在我的单个 .ahk 文件中的宏中保持其最后更改的状态。
见下面的例子,
~Home::Suspend
XButton1::
tog()
return
LButton::
shot()
return
var := "1"
tog(){
var *= -1
}
shot(){
If (var = "1") {
Loop, 1 {
Send {k}
Sleep 65
Send {WheelDown}
Sleep 100
Send {WheelUP}
Sleep 10
}
} Else {
Send {k}
}
}
我知道以上是不正确的,我尝试在我的函数中使用“全局”,但我只是无法获得我想要的效果。
最佳答案
我所做的,特别是因为我有时运行多个脚本需要访问同一个变量,是将 var 放在一个 .ini 文件中。我还使用它来在重新启动后保留变量值。由于数据保存到硬盘/SSD,解决方案有点慢,但它工作得很好。
将值“S”写入“完成”组中的变量“状态”的示例
IniWrite, S, C:\2Podcasts\FinishOptions.ini, Finish, State
在另一个脚本(其他 AutoHotKey 实例)中,我读取了该值并将其分配给变量“FinishOption”。
IniRead, FinishOption, C:\2Podcasts\FinishOptions.ini, Finish, State
如果你想切换值(真/假),你可以使用这个。这将对变量的当前值执行 IF 并将变量设置为相反的值。
If (MyLoop := !MyLoop) ; Toggle the variable "MyLoop" True/False
{
Do something
}
Else
{
Do something else
}
return
关于variables - 可以通过不同的宏访问和修改的 AutoHotKey 全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12850350/