当您使用不带大括号的if 语句时,if 语句仅读取以下行。
这意味着当你这样做时:
If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
...程序结束。 if 语句执行运行命令,无论如何都会处理return。
所以,如果你想要多行,试试这个:
If(Open = 1){
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
}
而且,无论如何都不会发生任何事情!首先,当您选中该框时,您没有子可以处理该复选框。换句话说,当您单击复选框时,不应该发生任何事情。所以,我想您只想在按下“开始”按钮时让事情发生。
这很好,但是你的 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 中并更改热键的命令。