【问题标题】:Can't launch exe with process start无法通过进程启动启动 exe
【发布时间】: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 上尝试一下,看看我的设置是否有问题。谢谢

标签: c# wpf


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多