Wenn Sie in Go Syscall verwenden, um Befehlszeilenfenster mit exec.Command(name, args...) zu verdecken, Bestimmte Benutzer stoßen auf ein anhaltendes Problem: Das Fenster wird nach der Kompilierung in Windows-Umgebungen wieder angezeigt.
Mit dieser Frage soll eine Lösung dafür gefunden werden verhindern, dass das Befehlszeilenfenster erscheint. Während die Technik des Kompilierens von Go-Quellen in ausführbare Windows-GUI-Dateien mithilfe von go build -ldflags -H=windowsgui das Startfenster für das Programm selbst effektiv unterdrückt, erzeugt Exec weiterhin sichtbare Fenster.
Lösung:
Es gibt eine überlegene Lösung, die es exec.Command() ermöglicht, auszuführen, ohne ein sichtbares Symbol anzuzeigen Fenster.
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()
Dieser Code importiert den Systemaufruf und weist den Befehlspfad, die Argumente und das HideWindow-Attribut dem cmd_instance-Objekt zu. Anschließend führt es den Befehl aus und speichert die Ausgabe in cmd_output.
Dieser Ansatz verbirgt erfolgreich Befehlszeilenfenster, während exec.Command() in Go verwendet wird, wodurch die anfängliche Abfrage effektiv beantwortet wird.
Das obige ist der detaillierte Inhalt vonWie verstecke ich Eingabeaufforderungsfenster, wenn ich „exec.Command' in Go verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!