2017-03-10 27 views
0

我需要打開文件test.mdb。 該路徑必須從任何目錄它位於相對於C#程序EXEC#進程。啓動文件名和傳遞參數

我需要通過參數線,分批將這樣/ CMD「MyArgument」 對於/ CMD開關傳遞來FULLPATH建工作路徑必須包含完整路徑安裝MSACCESS.EXE

我只是不知道如何傳遞的完整路徑MSACCESS> EXE其次FULLPATH到TEST.MDB其次參數。

,試圖幫助我張貼如下的批處理串的作品,但我需要C#

「C:\ Program Files文件\的Microsoft Office \ OFFICE10 \ MSACCESS.EXE」「C:\ Documents和Settings \用戶\測試實例文件夾\ TEST.MDB」/CMD‘MyArgument’

要明確兩個要點:

的TEST.MDB FULLPATH必須通過啓動C#來自動確定exe文件這將是C#的EXE路徑,但與test.mdb。

如果C#EXE程序可以自動檢查哪個版本,即Office 10,Office 12等,並且使用它,那麼MSACCESS> EXE路徑必須是安裝的MSACCESS.EXE版本的完整路徑。

這是到目前爲止我的代碼:

var filePath = @"test.mdb"; 

Process process = new Process(); 
process.StartInfo.FileName = filePath; 
process.StartInfo.Arguments = "/cmd " + "\"MyArgument\""; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
process.Start(); 
+0

的路徑數據庫文件將是你的論點之一。 – juharr

+0

獲取TEST.MDB完整路徑很簡單: 變化 'VAR文件路徑= @ 「TEST.MDB」;' 到 '字符串文件路徑=新System.IO.FileInfo( 「TEST.MDB」) .FullName;' – Mvarta

+0

juharr&Mvarta我試過,但它不起作用,你可以發佈工作代碼示例,解決我的帖子中的所有要點包括任何使用引用等,以便代碼編譯Im新的C#和不能得到它的工作,所以一個代碼的工作示例,解決我所有的問題對我來說都會有好處謝謝 –

回答

1

我不認爲你需要擔心檢測的Office版本,只是這應該爲你工作:

 string filepath = '"' + Directory.GetCurrentDirectory() + "\\test.mdb" + '"'; 
     string acc_cmd_arg = "HELLO"; 

     using (System.Diagnostics.Process process = new System.Diagnostics.Process()) { 
      process.StartInfo.FileName = "msaccess.exe"; 
      process.StartInfo.Arguments = filepath + " /cmd " + acc_cmd_arg; 
      process.Start(); 
     } 
+0

我剛剛嘗試過,它確實有用,謝謝。 –