在 Go 中,当使用 syscall 使用 exec.Command(name, args...) 来隐藏命令行窗口时,某些用户遇到一个挥之不去的问题:在Windows环境下编译后窗口重新出现。
这个问题旨在揭示一个防止命令行窗口出现的解决方案。虽然使用 go build -ldflags -H=windowsgui 将 Go 源代码编译为 Windows GUI 可执行文件的技术有效地抑制了程序本身的启动窗口,但 Exec 继续生成可见窗口。
解决方案:
存在一个卓越的解决方案,它使 exec.Command() 能够在不显示可见的情况下执行window.
import syscall cmd_path = "C:\Windows\system32\cmd.exe" cmd_instance = exec.Command(cmd_path, "/c", "notepad") cmd_instance.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} cmd_output, err := cmd_instance.Output()
此代码导入系统调用并将命令路径、参数和 HideWindow 属性分配给 cmd_instance 对象。随后,它执行命令并将输出存储在 cmd_output 中。
这种方法在利用 Go 中的 exec.Command() 时成功隐藏了命令行窗口,有效地解决了初始查询。
以上是在 Go 中使用 exec.Command 时如何隐藏命令提示符窗口?的详细内容。更多信息请关注PHP中文网其他相关文章!