2012-03-14 113 views
0

我正在做一個項目,其中包括一個已經完成的程序。在Windows應用程序中包含一個.bat文件或一個.exe文件

它有一個.bat文件以及一個.exe文件。

現在已經做progream是在一個文件夾中的「X」,那裏有許多文件,包括

  1. 是一個.tcl文件
  2. 是一個.exe文件
  3. 是.bat文件。

現在,當我點擊.exe文件時,會打開一個對話框,我必須選擇上面提到的.tcl文件並執行該程序。

現在,當我執行.bat文件時,程序會自動執行。

現在的問題是,所有的文件都在同一個文件夾內。如果我將.bat文件或.exe文件放在文件夾「X」之外,我已經完成的程序不會執行。

現在我正在做一個項目,我必須調用這個所謂的已經完成的程序。

我正在調用.bat文件或.exe文件。內部使用

Process.Start(@"E:\X\abc.exe"); 

Process.Start(@"E:\X\xyz.bat"); 

但我的計劃犯規執行程序。

所以我在我的項目中添加了整個文件夾'X'並嘗試了這個。

Process.Start(@"E:\Project\X\abc.exe"); 

Process.Start(@"E:\Project\X\xyz.bat"); 

,其中項目是我的項目得到保存的文件夾。還請注意即時通訊使用Windows應用

兩種方式我不會得到結果。

我保留了按鈕點擊事件的process.start。

在點擊該按鈕,如果我有

Process.Start(@"E:\Project\X\xyz.bat"); 

我得到的命令提示符的閃爍並沒有任何反應。

當我有

Process.Start(@"E:\Project\X\abc.exe"); 

,我感到我上面提到的對話框。我必須選擇上面提到的.tct文件。

但我得到這樣的錯誤。

無法打開「./input-background。GIF「:沒有這樣的文件或目錄

是否有一個地方,我可以運行我的程序incluidng德.bat文件或.exe文件的解決方案

回答

0

其實我覺得可能是有在您的情況有些迷惑的問題,所以我會在這裏發表一個典型的呼叫蝙蝠程序:

static void Main(string[] args) 
    { 
    ProcessStartInfo pst = new ProcessStartInfo("Your batch file","the arguments"); 
    Process p = new Process(); 
    p.StartInfo = pst; Console.WriteLine(p.StandardOutput); //Some info like error message in your batch file or comments. 
p.Start(); 
    } 

,你可以用一個可執行文件或批量替換您的批處理文件文件。 關於你的第二個問題,可能是在你的批處理文件中有一些資源獲得一個有空格的目錄,你可以在它周圍添加配額。 我建議你可以先在Windows命令行中測試你的批處理文件,如果它按預期工作,然後轉到處理代碼。 希望有所幫助。

+0

非常感謝。但不知何故,我排除了它,並得到了結果..我也試過你的方法, – 2012-03-21 07:25:00

1

如果不從你的功能是提供錯誤信息。很難理解什麼是錯,反正你可以嘗試運行過程中改變其當前目錄(我猜他們尋找的東西,他們無法找到像「輸入background.gif」)作爲例子:

ProcessStartInfo startInfo = new ProcessStartInfo("YourProgram.exe", "command line parameters"); 
startInfo.WorkingDirectory = Application.StartupPath; 
Process.Start(startInfo); 
+0

我沒有得到任何錯誤。我得到的唯一錯誤是「無法打開」./input-background.gif「:沒有這樣的文件或目錄」。那就是問題所在。我也試過你的方法,但它不起作用 – 2012-03-14 08:24:22

+0

同樣的事情發生在你的方法也。只需在.bat文件執行時獲得cmd提示即可。 – 2012-03-14 08:27:14

+0

將批處理文件輸出重定向到一個文件(請參閱http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process.standardoutput.aspx)以獲取批處理_says_(您是否可以包含批處理代碼? ) – 2012-03-14 08:36:56

0

同意的以前的回答,以及我想提到的更多事情是,如果您的應用程序在windows7或更高版本下運行,請注意Windows用戶帳戶控制(UAC),關閉它或使用管理員權限運行您的應用程序。否則,過程對象將不會運行。

+0

即時通訊使用XP專業版。但仍然會得到同樣的結果。任何其他建議。 – 2012-03-14 08:29:14

相關問題