如何解决当我添加 GUI 时,AHK 突然需要在 } 之前返回
在做一个小项目时,我添加了一个 GUI,它突然需要返回? 我想让它询问应该命名一个文件夹然后创建它 它正在工作,但后来我为您要下载的内容添加了 GUI,它需要返回 我在其他任何地方都找不到关于此主题的任何其他内容
工作代码:
if !FileExist(%UserInput%) {
MsgBox,Serkket Servers,Server will build files,press ok to continue `n Server will open when done
FileCreateDir,%UserInput%
}
不工作的代码:
if !FileExist(%UserInput%) {
Gui,New,Server Software
Gui,Color,707070
Gui,Add,DropDownList,vServVers,1.16.5|1.16.4|1.16.3|1.16.2|1.16.1|1.15.2|1.15.1|1.15|1.14.4|1.14.3|1.14.2|1.14.1|1.14|1.13.2|1.13.1|1.13|1.12.2|1.12.1|1.12|1.11.2|1.11.1|1.11|1.10.2|1.9.4|1.9.2|1.9|1.8.8|1.8.3|1.8
Gui,Button,Default w80,OK
Gui,+Resize +MinSize480x240
Gui,Show
Pause,On
ButtonOK:
Gui,Submit
MsgBox,%UserInput%
}
解决方法
这种情况下的 return 是必需的,因为您有一个 ButtonOK:
标签没有被正确关闭以形成它的子例程。由于需要此 return
,您需要将标签移到代码中的其他位置,即当前部分之外的某个位置。如果此代码出现在文件的顶部,则需要将其移到自动运行段之外。
为此,我们可以给 GUI 一个标签,该标签使用 Gui,MyLabel:New
完成。这允许 AHK 同时使用不同的 GUI,但也可以通过将 GuiClose
更改为 MyLabelGuiClose
来更轻松地处理 default window event handlers。
这会将您的条件语句更新为:
if !FileExist(%UserInput%) {
Gui,SelectServers:New,+Resize +MinSize480x240 +HwndSelectServersHwnd,Server Software
Gui,SelectServers:Color,707070
Gui,SelectServers:Add,DropDownList,vServVers,1.16.5|1.16.4|1.16.3|1.16.2|1.16.1|1.15.2|1.15.1|1.15|1.14.4|1.14.3|1.14.2|1.14.1|1.14|1.13.2|1.13.1|1.13|1.12.2|1.12.1|1.12|1.11.2|1.11.1|1.11|1.10.2|1.9.4|1.9.2|1.9|1.8.8|1.8.3|1.8
Gui,Button,Default w80 gSelectServersButtonOK,OK ; <- don't forget to connect the handler
Gui,SelectServers:Show
WinWaitClose,ahk_id %SelectServersHwnd% ; <- This is a better choice than "Pause,On"
}
这可以添加到自动运行部分之外的任何地方(如文件底部)
return ; <- makes sure the auto run section has ended (only needed once)
SelectServersButtonOK:
Gui,SelectServers:Submit
MsgBox,Serkket Servers,Server will build files,press ok to continue `n Server will open when done
FileCreateDir,%UserInput%
Gui,SelectServers:Destroy
return
SelectServersGuiClose:
SelectServersGuiEscape:
; TODO: Handle cancelling selection GUI
; e.g. ExitApp,cancel folder creation,etc.
Gui,SelectServers:Destroy
return
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。