將進程與命令列視窗解耦
在 Go 中,您可以使用 os.StartProcess() 建立子進程。但是,預設情況下,此進程保持與父命令視窗的連線。要解耦進程並在背景運行它,您需要修改其屬性。
在您的程式碼中,您已經設定了 procAttr 結構來重定向子程序的檔案描述符。但是,您似乎忽略了隱藏 Windows 系統控制台視窗的必要設定。
要隱藏控制台窗口,請將以下行新增至 procAttr.Sys 成員:
procAttr.Sys.HideWindow = true
但是,您提到這會導致「記憶體指標錯誤」錯誤。這很可能是由於程式碼中與進程解耦無關的另一個問題造成的。
要在不連結到Windows GUI 子系統並停用控制台視窗建立的情況下編譯程序,請使用以下命令:
go tool 8l -o output.exe -Hwindowsgui input.8
這將產生一個可執行文件,可以在背景運行,無需控制台視窗。
以上是如何將Go進程與命令列視窗解耦並在Windows中隱藏控制台視窗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!