2011-05-26 121 views
7

有沒有辦法通過C#應用程序的快捷方式運行應用程序?使用Process.Start通過快捷方式運行應用程序C#

我試圖從我的C#應用​​程序運行的.lnk。該快捷方式包含大量參數,我寧願應用程序不必記住。

嘗試通過的Process.Start運行快捷方式會導致異常。

感謝

編輯:

唯一的例外是 「Win32Exception」: 「指定的可執行文件是不是有效的Win32應用程序」

這裏是(略)代碼:

ProcessStartInfo info = new ProcessStartInfo ("example.lnk"); 
info.CreateNoWindow = true; 
info.UseShellExecute = false; 
info.RedirectStandardError = true; 
info.RedirectStandardOutput = true; 
info.RedirectStandardInput = true; 
Process whatever = Process.Start(info); 
+0

快捷方式需要參數或者是需要參數的快捷方式的目標? – Jodrell 2011-05-26 16:27:16

+0

什麼是例外? – Jodrell 2011-05-26 16:27:53

+0

@Jodrell更新了請求的信息。快捷方式的目標需要參數。 – user664939 2011-05-26 16:38:05

回答

4

設置UseShellExecute = false是問題。一旦我刪除它,它停止崩潰。

10

你能發佈一些代碼。像這樣的東西應該工作:

Process proc = new Process(); 
proc.StartInfo.FileName = @"c:\myShortcut.lnk"; 
proc.Start(); 
+1

+1:在這裏測試過,效果很好。 – 2011-05-26 16:56:47

0

如果你的文件是EXE或其他文件類型,如「.EXE」或「.MKV」或「.PDF」,你想運行與快捷鏈接代碼必須這樣。

我想運行 「Translator.exe」 計劃。

Process.Start(@"C:\Users\alireza\Desktop\Translator.exe.lnk"); 
0

如果您使用UseShellExecute = false,並試圖發起一個批處理文件,確保添加.BAT到文件名末尾。如果UseShellExecute = true,則不需要.bat。這讓我只是浪費了一小時的工作......希望拯救別人。

+0

歡迎來到StackOverflow並感謝您的幫助。參加[巡演]將爲您獲得您的第一張徽章。玩的開心。 – Yunnosch 2017-06-20 04:52:58

相關問題