-1

我想从 C# 运行一些 Windows 程序。我该怎么做?从我一直在查找的内容来看,它与 System.Diagnostics.Process 的 start 方法有关

我会不会使用

System.Diagnostics.Process;

然后输入

start("Command to be executed");

还是我看错了这个问题?

C# 新手。

4

3 回答 3

2

根据您的评论,您似乎不熟悉面向对象的编程命名空间和类。让我们分解一下。

Process是一个类,是 .NET 框架的一部分。Processhas 有一组方法,其中一些是static方法。Start是那些静态方法之一。有两件必需品供您使用Process.Start

  1. 编译器需要知道是什么Processusing System.Diagnostics;您可以通过添加到类文件的顶部将该信息提供给编译器。这告诉编译器在命名空间中寻找类System.Diagnostics,这是存在的地方Process
  2. 您需要明确告诉编译器您正在调用一个名为的方法,该方法Start 是 process class 的一部分。您可以使用Process.Start(). 或者在你的情况下,Process.Start("Command to be executed");

您不能只键入有两个原因start("Command to be executed")

  1. start,小写字母“s”Start与大写字母“S”不同。C# 是一种区分大小写的语言。
  2. 如果你没有在你的方法调用前面加上一个特定的类名,编译器会在你自己的类中查找那个方法,当它没有找到时,它会告诉你。
于 2012-11-01T17:51:12.853 回答
1

问题是:本质上,“要执行的命令”部分就是您在命令提示符中键入的内容。例如:

Process.Start("C:\Programs\programFile.exe",
              "/arg1='This is an argument' -arg2=anotherArgument someOtherArgument");

您的程序的入口点(该文件位于“C:\Programs\programFile.exe”)将在其 main 方法中接收以下参数列表:

args[0] = "/arg1='This is an argument'"
args[1] = "-arg2=anotherArgument"
args[2] = "someOtherArgument"

这种将参数作为命令行传递的方式显然不是最好的格式化方式,但它始终可以完成这项工作。

于 2012-11-01T17:46:26.017 回答
0
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");

// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);

来自MSDN

于 2012-11-01T17:50:31.200 回答