2012-12-24 39 views
12

這工作:爲什麼Process.Start(「cmd.exe」,進程);不行?

Process.Start("control", "/name Microsoft.DevicesAndPrinters"); 

但這並不:(它只是打開一個命令提示符。)

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 

爲什麼?

(是的,我知道他們是不相同的,但第二個「應當」的工作。)

+0

它適用於我。你的錯誤是什麼? –

+2

@SonerGönül沒有錯誤。正如我寫的 - 它只是打開一個命令提示符。它應該打開DevicesAndPrinters。 (你的意思是它對你有用嗎?) – ispiro

回答

29

這是因爲cmd.exe需要一個/K開關執行過程作爲參數傳遞。嘗試下面的代碼

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 

編輯:更改爲/K上面。如果您想讓cmd.exe在運行命令後關閉,您可以使用/C開關。

1

試試這個

ProcessStartInfo info = new ProcessStartInfo("control"); 
info.Arguments = "/name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 
+0

我知道。但我特別想看到命令行和結果。 – ispiro

6

您需要一個/c/k開關(cmd.exe的選項),以便執行該命令。嘗試:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 
相關問題