首页 > 解决方案 > 为什么相同的命令与 CMD 与 Process.Start() 的工作方式不同?

问题描述

CMD 或 Win+R 中使用的以下命令打开屏幕保护程序对话框:

control desk.cpl,screensaver,@screensaver

以下内容做了类似的事情,但下拉菜单中缺少大多数屏幕保护程序(仅(None)BlankPhotos可用):

Process.Start("control.exe", "desk.cpl,screensaver,@screensaver");

为什么?

(而且,很明显,我怎样才能使用 C#/.Net 获得 CMD 结果?)

标签: c#.netwindowscmdwindows-10

解决方案


区别在于启动应用程序的位数。64 位资源管理器启动 64 位控制面板获取完整列表。

以 32 位运行的应用程序启动 32 位控制面板并获取截断列表。以 64 位运行的同一应用程序再次获得完整列表。

因此,“显而易见”的解决方法是更改​​项目的属性以构建 x64。


推荐阅读