Maison  >  Article  >  développement back-end  >  Comment lancer une fenêtre de commande distincte pour une application non graphique dans Golang sous Windows ?

Comment lancer une fenêtre de commande distincte pour une application non graphique dans Golang sous Windows ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 07:26:02198parcourir

 How to Launch a Separate Command Window for a Non-GUI Application in Golang on Windows?

Comment lancer une nouvelle fenêtre de commande à partir de Golang dans Windows

Lancer une fenêtre de commande distincte pour une application peut être difficile depuis un Golang programme. Cette question explore un problème courant rencontré par les développeurs qui ont besoin de plusieurs fenêtres de commande avec des flux d'entrée et de sortie indépendants.

Problème : lancement d'applications non graphiques avec des fenêtres séparées

Le l'utilisateur tente de créer une interface de fenêtre de commande personnalisée à l'aide d'une application Go. Ils ont rencontré des difficultés pour lancer une nouvelle instance de l'application avec sa propre fenêtre. L'utilisation du package "os/exec" s'est révélée inefficace pour les applications non-GUI.

Solution : Utiliser la commande "start" dans Windows

La solution réside dans l'utilisation du Commande "start" comme suffixe à "cmd /c" lors de l'exécution de l'application. En tirant parti du format "./executor.exe /start C:/path/to/your/app.exe", l'utilisateur peut lancer avec succès une fenêtre de commande distincte avec ses propres flux d'entrée et de sortie standard.

Voici le code mis à jour qui résout le problème :

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
    }
}

Cette solution crée efficacement une nouvelle fenêtre de commande pour l'application spécifiée, dotée de ses propres fonctionnalités d'entrée et de sortie, permettant au programme Go d'interagir avec plusieurs fenêtres de commande. simultanément.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn