63 votes

Processus de lancement en C # sans fenêtre de distraction

J'ai trouver comment lancer un processus. Mais mon problème est maintenant la fenêtre de la console (dans ce cas, 7z) apparaît au premier plan le blocage de ma vision et de la suppression de mon point interrompre ma phrase ou w/e je suis en train de faire toutes les quelques secondes. Son extrêmement ennuyeux, comment puis-je empêcher cela de se produire. J'ai pensé CreateNoWindow résout, mais il na pas.

REMARQUE: parfois, la console besoins de l'utilisateur (remplacer le fichier ou pas). Afin de les cacher complètement peut-être un des problèmes d'un bien.

C'est mon code actuel.

void doSomething(...)
{
    myProcess.StartInfo.FileName = ...;
    myProcess.StartInfo.Arguments = ...;
    myProcess.StartInfo.CreateNoWindow = true;
    myProcess.Start();
    myProcess.WaitForExit();
}

96voto

Mun Points 6844

Si je me souviens bien, cela a fonctionné pour moi

 Process process = new Process();

// Stop the process from opening a new window
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;

// Setup executable and parameters
process.StartInfo.FileName = @"c:\test.exe"
process.StartInfo.Arguments = "--test";

// Go
process.Start();
 

J'utilise cela à partir d'une application console C # pour lancer un autre processus. Cela empêche l'application de le lancer dans une fenêtre séparée, au lieu de tout conserver dans la même fenêtre.

27voto

codefox Points 71

@galets Dans votre suggestion, la fenêtre est toujours créée, elle commence seulement à être réduite. Cela fonctionnerait mieux pour réellement faire ce que acidzombie24 voulait:

 myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
 

4voto

galets Points 4119

Essaye ça:

 myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
 

3voto

Paul Alexander Points 17611

Je devrai vérifier, mais je crois que vous devez également définir UseShellExecute = false . Cela vous permet également de capturer les flux de sortie / d'erreur standard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X