2011-05-26 77 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

相关问题