2012-05-16 528 views
0

我正在開發一個windows應用程序。我打電話給一個命令提示符,我需要調用exe文件,這個exe文件帶參數。在Winforms中使用cmd執行一個帶有參數的exe文件

我能打開命令提示符,但不能發送parametrs

 string strCmdText = "create-keyfile.exe ..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim(); 
     System.Diagnostics.Process.Start("CMD.exe", strCmdText); 

能幫幫我。

感謝

Punith

回答

0

你試過

System.Diagnostics.Process.Start("CMD.exe "+strCmdText); 

其實在進一步的檢查,我不認爲你需要調用CMD.EXE 你應該呼喚你的exe文件,除非當然你用的是CMD來顯示東西

string strCmdText = "..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim(); 
System.Diagnostics.Process.Start("create-keyfile.exe", strCmdText); 
4
System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo("create-keyfile.exe"); 
startInfo.Arguments = "..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim(); 
System.Diagnostics.Process.Start(startInfo); 

您還可以在Process.Start上看到MSDN site,有關於如何執行.exe並將參數傳遞給它的示例。

+0

謝謝阿德里安塞拉芬 –

+0

如果它解決了您的問題,您應該接受答案,以便其他人可以看到該問題已關閉。 –

1
ProcessStartInfo process = new ProcessStartInfo(); 
process.FileName = "yourprogram.exe"; 
process.Arguments = strCmdText; // or put your arguments here rather than the string 
Process.Start(process); 
0

你試過用CMD /k or /c option

link

/C:執行字符串指定的命令,然後停止。

/k:執行字符串指定的命令並繼續。

string strCmdText = "/k create-keyfile.exe ..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim(); 
    System.Diagnostics.Process.Start("CMD.exe", strCmdText); 
0

試試這個。

string strCmdText = "KatanaFirmware\\key-template.txt "+ "\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " +  startIdTextBox.Text.Trim(); 
Process mp = new Process(); 
mp.StartInfo.FileName = "E:\\create-keyfile.exe"; //path of the exe that you want to run 
mp.StartInfo.UseShellExecute = false; 
mp.StartInfo.CreateNoWindow = true; 
mp.StartInfo.RedirectStandardInput = true; 
mp.StartInfo.RedirectStandardOutput = true; 
mp.StartInfo.Arguments = strCmdText; 
mp.Start(); 
mp.WaitForExit(); 

希望它有幫助。

相關問題