c# - 为什么相同的命令与 CMD 与 Process.Start() 的工作方式不同?
问题描述
CMD 或 Win+R 中使用的以下命令打开屏幕保护程序对话框:
control desk.cpl,screensaver,@screensaver
以下内容做了类似的事情,但下拉菜单中缺少大多数屏幕保护程序(仅(None)、Blank和Photos可用):
Process.Start("control.exe", "desk.cpl,screensaver,@screensaver");
为什么?
(而且,很明显,我怎样才能使用 C#/.Net 获得 CMD 结果?)
解决方案
区别在于启动应用程序的位数。64 位资源管理器启动 64 位控制面板获取完整列表。
以 32 位运行的应用程序启动 32 位控制面板并获取截断列表。以 64 位运行的同一应用程序再次获得完整列表。
因此,“显而易见”的解决方法是更改项目的属性以构建 x64。
推荐阅读
- python-3.x - Pyodbc 批量插入 Teradata 表
- graphql - Apollo Graphql 订阅:用于创建、更新和删除的不同订阅解析器或单个解析器?
- java - 如何在视图模型中填充微调器?
- python - Anaconda 新环境与 tensorflow 1.14 版本
- junit - Maven 运行不包括 Junit 测试
- c# - 如何从monthCalendar控件在sqlite中插入日期 - c# - Windows Forms
- javascript - 在 ReactJS 中创建简单的 Timer(不使用 useEffect)
- java - 如何更新 JVM PACT 合同中帖子参数的动态日期?
- c# - 提交具有不同类型选择的 ASP.NET CORE MVC 测验/考试
- javascript - 如何在客户端应用程序端检查浏览器对 brotli 压缩的支持?