为什么 Process 会自动在桌面上查找我的.exe?如何指定固定/非灵活路径

本文关键字:何指定 路径 活路 exe Process 桌面 我的 查找 为什么 | 更新日期: 2023-09-27 18:37:25

我以通常的方式启动可执行文件:

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WorkingDirectory = @"C:'someDirectory'";
p.StartInfo.FileName = "ConsoleProgram.exe";
p.Start();

目前,可执行文件不在C:'someDirectory',因此我希望由于找不到可执行文件而导致上述操作失败。

相反,它

的作用是,由于某些原因,它在我的桌面上找到一个同名的不同可执行文件!(我知道这一点,因为如果我在桌面上重命名.exe,软件会抱怨找不到.exe。如何防止此行为,并强制实施特定路径而不强制实施其他路径?

为什么 Process 会自动在桌面上查找我的.exe?如何指定固定/非灵活路径

当 UseShellExecute 为 false 时,WorkingDirectory 属性不是 用于查找可执行文件。相反,它由以下进程使用 已启动,并且仅在新流程的上下文中有意义。

在这里,您将UseShellExecute设置为false,WorkingDirectory绝对没有任何意义,因此您必须使用绝对路径作为文件名。

将完整的路径信息添加到文件名。

您是否尝试将Filename设置为文件的路径?喜欢这个:

p.StartInfo.FileName = @"C:'someDirectory'ConsoleProgram.exe";