首頁 >後端開發 >Golang >在 Go 中使用 exec.Command 時如何隱藏命令提示字元視窗?

在 Go 中使用 exec.Command 時如何隱藏命令提示字元視窗?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 01:25:12856瀏覽

How to Hide Command Prompt Windows When Using `exec.Command` in Go?

如何使用Exec 隱藏命令提示字元視窗

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn