2012-12-21 31 views
1

好吧,我已經知道了我的問題。我正在使用一些軟件來遠程啓動本地計算機上的程序。在這樣做的時候,我通過一個我希望啓動機器的程序的網絡發送一條路徑。它使用Process.Start並存儲執行路徑。然後,我稍後重新發送該路徑並告訴它關閉與此路徑相關聯的進程。C#.NET Process.Start()在運行快捷方式時返回null

Process newProcess = Process.Start(startPath); 
_runningProcesses.Add(new MCProcess(startPath, new Process); 

有時候,我會用它來調用一個快捷方式,因爲我想要傳遞一些命令鏈接參數。

我用它來調用.exe和.lnk(快捷方式擴展),它運行的程序就好了。

但是,將路徑傳遞給快捷方式時,它返回的過程爲空!因此,當我發回路徑關閉程序時,該進程爲空,並且無法關閉程序。

任何解決方案?

+0

有你不能在exe上調用命令行參數的任何特定原因? – MyCodeSucks

+0

@TyrionLannister你能詳細解釋一下嗎? –

+0

我不明白你的困惑。爲什麼你不能將參數傳遞給exe文件? – MyCodeSucks

回答

3

你不需要的快捷傳遞參數給程序,只是下面:

Process process = new Process(); 
process.StartInfo.FileName = "\"C:\\my.exe\""; 
process.StartInfo.Arguments = "arg1 arg2 arg3"; 
//... 
process.Start(); 

在命令行會看起來像C:\ my.exe ARG1參數3

+0

然後,我只需將start參數與startPath一起傳遞? –

+0

@KyleUithoven我編輯了我的答案,你現在明白了嗎? – VladL