2009-03-18 11 views
0

comment créer une application comme une commande d'exécution de fenêtre en utilisant C#. Lorsque j'insère une commande (par exemple: ipconfig), cela renvoie le résultat (par exemple: 192.168.1.1) dans la zone de texte.comment créer une application de commande comme exécuter une commande pour vista

  1. comment obtenir la liste de commande de Windows?
  2. comment obtenir le résultat de la commande?
  3. comment faire pour obtenir la liste des applications installées sur la machine?

Répondre

2

(1) La liste des commandes proviendra très probablement de n'importe quel exécutable trouvé dans votre% PATH%. Vous pouvez trouver votre liste en trouvant tous les fichiers exécutables .exe/.bat/other dans chaque dossier spécifié par% PATH%. Vous n'avez même pas besoin de savoir quelles applications sont disponibles, la méthode Process.Start les trouvera pour vous. (Voir ci-dessous)

(2) Vous pouvez exécuter un outil de ligne de commande par programme:

System.Diagnostics.Process.Start("notepad.exe"); // located using %PATH% 

Pour capturer la sortie, vous devez rediriger comme ceci:

System.Diagnostics.ProcessStartInfo psi = 
    new System.Diagnostics.ProcessStartInfo(@"ipconfig"); 
psi.RedirectStandardOutput = true; 
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
psi.UseShellExecute = false; 

System.Diagnostics.Process myProcess; 
myProcess = System.Diagnostics.Process.Start(psi); 
System.IO.StreamReader myOutput = myProcess.StandardOutput; // Capture output 
myProcess.WaitForExit(2000); 
if (myProcess.HasExited) 
{ 
    string output = myOutput.ReadToEnd(); 
    Console.WriteLine(output); 
} 

(3) Probablement la même réponse que 1

1

Créez une application Windows Forms à l'aide de l'assistant. Dessinez une zone de texte et un bouton. Ajoutez un gestionnaire de clic au bouton qui prend le contenu de la zone de texte et lance un processus. Utilisez la classe Process. Cette classe possède également une propriété StandardOutput dont vous pouvez lire la sortie afin de pouvoir la placer dans la zone de texte.

Vous pouvez constater que pour utiliser de nombreuses commandes, vous devez taper CMD /C devant car elles ne sont pas des programmes distincts de l'interpréteur de commandes. En ce qui concerne la découverte d'une liste de commandes, cela n'est généralement pas possible. Une commande est juste un programme (ou une caractéristique de l'interpréteur de commandes CMD). Vous pouvez rechercher le disque dur pour les fichiers .exe, mais alors beaucoup d'entre eux ne seraient pas appropriés en tant que "commandes".

Questions connexes