首页 > 解决方案 > 无法通过进程启动启动 exe

问题描述

我正在尝试复制开始菜单,我可以毫无问题地获取所有应用程序的路径。并设法获得了快捷方式的目标 exe 路径。我可以毫无问题地启动其中的大多数,但其中一些(目前有一个,但我认为它们会更多)失败并出现以下错误

错误 =>“{hex} 处的指令引用了 {hex} 处的内存。无法读取内存”

我试过了

Process.Start(pathToMyExe);

ProcessStartInfo processStartInfo = new ProcessStartInfo(pathToMyExe);
processStartInfo.UseShellExecute = false;
processStartInfo.WorkingDirectory = Path.GetDirectoryName(pathToMyExe);
Process.Start(processStartInfo);

ProcessStartInfo processStartInfo = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe");
processStartInfo.Arguments = "/c \"" + pathToMyExe + "\"";
Process.Start(processStartInfo);

其中一些返回了上述错误,有些则什么也没做。我要启动的文件是

Acrobat Reader DC

它位于

C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe

在我的机器上。它从开始菜单启动正常,如果我在资源管理器中双击它。

我已经查看了有关类似问题的所有其他问题,但似乎没有一种解决方案适用于此。任何人有任何解决这个问题的方法吗?

标签: c#wpf

解决方案


以下在控制台应用程序和 WPF 应用程序中都可以正常工作。

var exePath = @"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe";
new Process {StartInfo = {FileName = exePath}}.Start();

推荐阅读