微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我添加 GUI 时,AHK 突然需要在 } 之前返回

如何解决当我添加 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%
}

Error:

解决方法

这种情况下的 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 举报,一经查实,本站将立刻删除。