我正在使用以下AHK脚本弹出带复选框的屏幕。想法是,当我检查框时,它应该打开一个文件夹。它适用于第一个,但当我检查第二个没有任何反应。任何想法我的代码都有错误
Gui, Add, Checkbox, vOpen, Open Bedrijfsbureau
Gui, Add, Checkbox, vOpen2, Open
Gui, Add, Button, Default gButtonGo, Go
Gui, Show, w500 h300, Products
Return
ButtonGo:
Gui, Submit
Gui, Destroy
If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
If Open2 = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau\Dimensioneren"
Return
GUIClose:
Gui, Destroy
答案 0 :(得分:2)
当您使用不带大括号的if
语句时,if语句只读取以下行。
这意味着当你这样做时:
If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
......程序结束。 if语句执行run命令,return
无论如何都会被处理。
所以,试试这个,相反,如果你想要多行:
If(Open = 1){
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
}
此外,无论如何都不会发生!首先,当您选中该复选框时,您没有子句来处理该复选框。换句话说,当您单击该复选框时,不会发生任何事情。所以,我想你只想在推动" Go"按钮。
那太好了,但你的go按钮做了两件事:它抓住了复选框的值,然后它退出了GUI ---->这就是为什么你的计划没有工作。
你想这样做,而不是:
Gui, Add, Checkbox, vOpen, Open Bedrijfsbureau
Gui, Add, Checkbox, vOpen2, Open
Gui, Add, Button, Default gButtonGo, Go
Gui, Show, w500 h300, Products
Return
ButtonGo:
;fetch the value of the checkbox variables
Gui, Submit
If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
If Open2 = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau\Dimensioneren"
;Now, if you want the gui to close after the actions are complete, then uncomment the next line - if you want the gui to remain, then don't uncomment it.
;Gui, Destroy
RETURN
GUIClose:
Gui, Destroy
最后,在这种情况下,您可以执行一个或两个复选框命令。如果你只想要一个或另一个,你应该使用单选按钮。
使用热键运行主要功能:
#x::
gosub, ButtonGo
return
如果您希望热键打开GUI,则需要将GUI包装在gosub中并更改热键的命令。