2015-06-19 101 views
1

我想讓我的程序打開單詞,然後是特定文檔,實際上只是使用單詞作爲示例。這可能在其他情況下很有用,但我想知道如何用參數來做到這一點。 我有一些代碼打開一個程序,而一些代碼,如果文件路徑不存在這裏顯示的錯誤消息:C# - 如何使用參數使用word打開文檔

private void StartProcess(string path) 
    { 
     ProcessStartInfo StartInformation = new ProcessStartInfo(); 

     StartInformation.FileName = path; 

     Process process = Process.Start(StartInformation); 

     process.EnableRaisingEvents = true; 
    } 
    private void ClickFunc(object sender, RoutedEventArgs e) 
    { 
     if (File.Exists(ProgramPath)) 
     { 
      StartProcess(ProgramPath); 
     } 
     else 
     { 
      MessageBox.Show("Specified path does not exist, please try again.", "Bad File Path Error", MessageBoxButton.OK); 
     } 
    } 

,我想知道我怎麼可以添加參數吧。謝謝!

+0

如果指定一個非可執行文件(如Word文檔)的Process.Start會導致文件被默認程序中打開該文件的文件擴展名(.doc或.docx)。我沒有測試過,但我非常懷疑你可以通過這種方式傳遞參數。另一方面,如果您知道Word可執行文件的路徑,則可以在Process.Start中使用該文件,而不是在文件中,然後可以傳遞參數,假定Word支持對命令行參數的任何注意,不知道它是否。 – adv12

+1

http://stackoverflow.com/questions/3268022/process-start-arguments – user666

+0

http://stackoverflow.com/questions/15061854/how-to-pass-multiples-arguments-in-processstartinfo – Alan

回答

1

您可以使用變量的的ProcessStartInfo屬性添加命令行參數。

事情是這樣的:

ProcessStartInfo startInfo = new ProcessStartInfo("winword"); 
startInfo.Arguments = "/a /b"; 

您也可以作爲的ProcessStartInfo構造函數的字符串指定命令行參數。

檢查從MSDN此鏈接

https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.arguments(v=vs.110).aspx

+0

感謝您的幫助! –

+0

有幾個糾結,但我得到它的工作。再次感謝人! –

+0

完美! @AnthonySmyth – Rami