问题描述
|
有没有一种方法可以通过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 );
解决方法
您能发布一些代码吗?这样的事情应该起作用:
Process proc = new Process();
proc.StartInfo.FileName = @\"c:\\myShortcut.lnk\";
proc.Start();
,问题在于设置UseShellExecute = false
。一旦删除它,它便停止崩溃。
,如果您使用UseShellExecute = false并尝试启动批处理文件,请确保将.bat添加到文件名的末尾。如果UseShellExecute = true,则不需要.bat。这让我只浪费了一个小时的工作……希望能救别人。
,如果您的文件是EXE或其他文件类型,例如\“。exe \”或\“。mkv \”或\“。pdf \”,并且您想使用快捷方式链接来运行该文件,则您的代码必须像这样。
我想运行\“ Translator.exe \”程序。
Process.Start(@\"C:\\Users\\alireza\\Desktop\\Translator.exe.lnk\");