Launching Separate Command Windows in Golang for Windows
In a Golang application that relies on the command window (CMD) for user interaction, it may become necessary to spawn additional instances of the application with their own dedicated command windows. While the os/exec package is initially a suitable choice, it falls short when attempting to launch non-GUI applications in separate windows.
Overcoming the Challenge
To successfully launch non-GUI applications in distinct command windows, a specific command syntax must be employed. This involves appending the start command after the cmd /c invocation. Here's how it's done:
<code class="go">package main import ( "exec" "fmt" ) func main() { _path_to_executable_ := "C:\path\to\my_application.exe" // Create the command to start the application with a new window cmd := exec.Command("cmd", "/C", "start", _path_to_executable_) // Execute the command err := cmd.Start() if err != nil { fmt.Println(err) } }</code>
By incorporating this modified command structure, the Golang application can successfully launch additional instances of itself in separate command windows, each with its own stdin and stdout.
The above is the detailed content of How to Launch Non-GUI Applications in Separate Command Windows with Golang on Windows?. For more information, please follow other related articles on the PHP Chinese website!