2012-11-01 163 views
-1

我想從C#運行幾個Windows程序。我將如何做到這一點?從我一直在尋找了,它是與的System.Diagnostics.Process的啓動方法C#中的命令行命令

會只是我使用

System.Diagnostics.Process; 

然後鍵入

start("Command to be executed"); 

或者我不正確地看着這個問題?

C#的新手。

+0

您是否檢查過[文檔](http://msdn.microsoft.com/de-de/library/53ezey2s(v = vs.100).aspx)? – GameScripting

+3

您似乎已經完成了答案,但實際上並未嘗試實施。爲什麼不? – ean5533

+0

因爲打字「開始」給了我一條波浪線。 –

回答

1

事情是:基本上「要執行的命令」部分是您將在命令提示符下鍵入的內容。例如:

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

程序的入口點(該文件位於「C:\程序\ programFile.exe」)將收到其主要方法如下參數列表:

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

這種將參數作爲命令行傳遞的方式顯然不是最大的格式,但它始終在做這項工作。

+1

除了你不應該傳遞參數給可執行文件。使用Start的適當超載。 –

+0

你說得對,只是更正 – fernandoespinosa

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

2

根據您的意見,似乎你不熟悉 面向對象編程 命名空間和類。讓我們分解它。

Process是一個類,是.NET框架的一部分。 Process已收集方法,其中一些方法是static方法。 Start是這些靜態方法之一。有必要的,以便兩件供您使用Process.Start

  1. 編譯器需要知道什麼是Process。您可以通過將using System.Diagnostics;添加到類文件的頂部,將該信息提供給編譯器。這告訴編譯器尋找System.Diagnostics命名空間中的類,這是Process所在的位置。
  2. 您需要明確告訴編譯器您正在調用名爲Start的方法,該方法屬於進程類的一部分。您可以使用Process.Start()來完成此操作。或者在你的情況,Process.Start("Command to be executed");

有兩個原因,爲什麼你不能只是輸入start("Command to be executed")

  1. start,以小寫的「s」,是不一樣的Start用大寫的「S」 。 C#是一個區分大小寫的語言。
  2. 如果不預先調用具有特定類名稱的方法調用,則編譯器將在您自己的類中查找該方法,並且當它找不到它時,它會告訴您有關該方法的信息。
+0

現在我發現我的答案中沒有任何內容與面向對象編程有關,而只是名稱空間和類。好吧。 – ean5533