2009-04-10 6 views
2

Est-il possible de démarrer un autre fichier EXE en code managé? A ce moment, tout ce que je peux faire est d'utiliser:Démarrer un autre fichier EXE dans le code managé

System.Diagnostics.Process.Start(exeName) 

Y at-il une autre façon d'appeler un autre EXE dans le même projet?

Merci! JFV

Répondre

8
  Process process = new Process(); 
      process.StartInfo.FileName = "c:\test.exe"; 
      process.StartInfo.Arguments = "/e /s"; 
      process.Start(); 

De cette façon, vous obtenez beaucoup d'options pour votre processus tels que process.WaitForExit() de sorte que vous ne pouvez pas exécuter de manière asynchrone votre processus, etc.

+0

J'utilise cette méthode pour quelques projets de test que nous avons mis en place. – chills42

+0

Merci! Je vais vérifier cela! – JFV

1

Utilisez des chemins d'accès relatifs et cela devrait fonctionner.

4

Vous pouvez utiliser Assembly.ExecuteAssembly s'il est géré. Cela exécutera le point d'entrée principal dans votre processus actuel au lieu de lancer un nouveau processus.

0

Les chemins relatifs utilisent CurrentDirectory, un utilisateur peut facilement changez ceci lors du lancement de votre application et cela peut changer pendant l'exécution. Je vous recommande d'utiliser quelque chose que vous pouvez être certains:

Il y a beaucoup de façons différentes pour obtenir le chemin de l'exécutable:

AppDomain.CurrentDomain.BaseDirectory 

Assembly.GetExecutingAssembly().Location 
Questions connexes