无法通过进程启动启动 exe

Posted

技术标签:

【中文标题】无法通过进程启动启动 exe【英文标题】:Can't launch exe with process start 【发布时间】:2019-08-09 08:18:34 【问题描述】:

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

Error => "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

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

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

【问题讨论】:

为什么通过将“AcroRd32.exe”作为参数传递给 cmd.exe 来打开它?为什么不直接启动呢? @Carbine,我认为 OP 正在展示他们尝试启动 acrord32.exe 以解决他们所看到的问题的 三种 不同方式(Process.Start,@ 987654324@ 通过ProcessStartInfocmd.exe),并不表示他们的意图是始终通过通过cmd.exe 传递应用程序来打开应用程序=) 您的问题无法重现。 Process.Start(@"C:\Program Files (x86)\Adobe\Acrobat Reader 2015\Reader\AcroRd32.exe") 在我的机器上运行良好(尽管路径略有不同)。 @Rob - 没错,首先尝试使用进程启动打开它,然后尝试其他方法,因为这对我不起作用。 @Clemens 我将不得不在另一台 PC 上尝试一下,看看我的设置是否有问题。谢谢 【参考方案1】:

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

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

【讨论】:

以上是关于无法通过进程启动启动 exe的主要内容,如果未能解决你的问题,请参考以下文章

无法启动进程 dotnet.exe

vc++如何得知IE被启动了?

SogouCloud.exe进程导致SQL Server服务无法启动

eclipse启动时自动多一个javaw.exe的进程解决办法

求助,无法启动进程"mingw32-make.exe

windows下启动的进程都是explorer的子进程吗