c# - Process.Start 找不到可执行文件
问题描述
我想从我的 .NET 应用程序中更改 BCD。为此,我创建了这个小片段:
static void RunBcdEdit()
{
Process process = new Process();
process.StartInfo.FileName = "c:\\Windows\\System32\\bcdedit.exe";
process.StartInfo.UseShellExecute = false;
process.WaitForExit();
}
奇怪的是它抛出了一个异常说
系统找不到指定的文件
这有什么问题?
解决方案
在 System32 之外运行应用程序时,我遇到了类似的问题。我发现的一种解决方法是使用 SysNative。在测试中,System32 何时可以工作或 SysNative 何时可以为驻留在 System32 中的不同应用程序工作并没有一致性。
static void RunBcdEdit()
{
Process process = new Process();
process.StartInfo.FileName = "c:\\Windows\\SysNative\\bcdedit.exe";
process.StartInfo.UseShellExecute = false;
process.WaitForExit();
}
推荐阅读
- typescript - TypeScript 中文字类型的实际用例是什么?
- python - 如何在 Python 中编写变量的整个单词?
- regex - 如何编写 nginx 重写规则以在相对路径中捕获 /static
- python - 无噪声提取信号的深度学习模型
- pdf - 使用 Angular 或 Javascript 使用 USB TOKEN 进行 PDF 签名
- canvas - 将画布流与 getUserMedia 的音频流合并是听不见的(kurento/webrtc)
- rust - Rust 迭代器类似于 chunks()
- c# - 如何在 NSwag for .NET Framework 中向端点添加信息?
- firebase - Flutter 的 onTap 方法打开存储在 Firestore 中的经纬度
- database - 如何在不覆盖数据库的情况下将 WordPress 网站从本地移动到远程?