Home > Article > Backend Development > How to Launch a Separate Command Window for a Non-GUI Application in Golang on Windows?
How to Launch a New Command Window from Golang in Windows
Launching a separate command window for an application can be challenging from within a Golang program. This question explores a common issue faced by developers who require multiple command windows with independent input and output streams.
Problem: Launching Non-GUI Applications with Separate Windows
The user is attempting to create a custom command window interface using a Go application. They have faced difficulty in launching a new instance of the application with its own window. Using the "os/exec" package has proved ineffective for non-GUI applications.
Solution: Using "start" Command in Windows
The solution lies in utilizing the "start" command as a suffix to "cmd /c" when executing the application. By leveraging the "./executor.exe /start C:/path/to/your/app.exe" format, the user can successfully launch a separate command window with its own standard input and output streams.
Here's the updated code that resolves the issue:
import ( "os/exec" ) func main() { cmd := exec.Command("cmd", "/C", "start", "./executor.exe", "/start", "C:/path/to/your/app.exe") err := cmd.Start() if err != nil { log.Fatal(err) // Handle error } }
This solution effectively creates a new command window for the specified application, complete with its own input and output facilities, allowing the Go program to interact with multiple command windows simultaneously.
The above is the detailed content of How to Launch a Separate Command Window for a Non-GUI Application in Golang on Windows?. For more information, please follow other related articles on the PHP Chinese website!