如何为vista创建命令应用程序,如run命令

时间:2009-03-18 07:18:56

标签: c# winapi

如何使用C#创建类似窗口运行命令的应用程序。当我插入任何命令(例如:ipconfig)时,此返回结果(例如:192.168.1.1)在文本框上。

  1. 如何获取Windows命令列表?
  2. 如何获得命令结果?
  3. 如何在机器上安装应用程序列表?

2 个答案:

答案 0 :(得分:2)

(1)命令列表很可能来自%PATH%中的任何可执行文件。您可以通过查找%PATH%指定的每个文件夹中的所有.exe / .bat /其他可执行文件来确定您的列表。您甚至可能不需要知道哪些应用程序可用,Process.Start方法将为您找到它们。 (见下文)

(2)您可以使用以下命令以编程方式运行命令行工具:

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

要捕获输出,您必须像这样重定向:

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)可能与1

的答案相同

答案 1 :(得分:1)

使用向导创建Windows窗体应用程序。绘制文本框和按钮。将按钮处理程序添加到按钮,该按钮将获取文本框的内容并启动进程。使用Process课程。该类还有一个StandardOutput属性,您可以读取输出,以便将其放入文本框中。

您可能会发现要使用许多命令提示符命令,您需要在前面键入CMD /C,因为它们不是命令解释程序的单独程序。

至于发现命令列表,这通常是不可能的。命令只是一个程序(或CMD命令解释器的一个特性)。您可以在硬盘中搜索.exe个文件,但其中许多文件不适合作为“命令”。