在 Windows 10/11 上,通过命令行(PowerShell 或 CMD)更改系统设置,而无需打开设置

在 Windows 10/11 上,通过命令行(PowerShell 或 CMD)更改系统设置,而无需打开设置

标题很简单,但需要一些背景知识来帮助阐述;我试图在 Godot Engine 中为 Windows 创建一种“桌面环境”——在某种程度上可以想象到微软鲍勃的时代,只不过它看起来仍然像一个桌面,而不是一个客厅。

虽然我的概念到目前为止进展良好(制作我自己的“程序”,能够在环境之外启动其他程序等),但我意识到如果我不能从命令行操作Windows系统本身的设置,例如时间,那么可能无法包含适当的“设置”窗口或程序。

我知道某些设置(再次例如时间)有自己的 CMD 或 PowerShell 对应项(CMD 的 DATE/TIME、PowerShell 的 Get/Set-Date/Time),并且在设置(在 CMD 的情况下是控制面板)真正成为现实之前就已经有了它们,但还有其他一些设置(例如蓝牙、应用程序通知、焦点辅助等),我并不完全确定。

有没有办法可以管理几乎所有重要的 Windows 设置,而无需通过 打开“设置”应用start ms-settings:?或者我现在大多数事情都要通过“设置”才能完成?我发现这个问题询问类似的问题,但所有的答案都只指向服务,这不是我想要的。

编辑:我注意到有几个问题我没有涉及,所以请允许我澄清一些事情;

  1. 为了使 Godot Engine 管理系统,它可以像命令行一样发出命令。因此,我想知道是否可以通过 PowerShell 或 CMD 更改基本设置。
  2. 关于“基本”这个话题;我基本上希望用户能够修改大多数与个性化没有直接关系的设置(除了一些提及),因为我可以在 Godot 本身中处理它(即,我不需要设置的个性化或可访问性部分中的任何内容)。

本质上,我想复制这些设置部分;

  • 系统,但涉及远程连接或通知的情况除外,因为无论如何这些都会取代游戏,
  • 设备,除了“笔和 Windows Ink”,因为我怀疑 Godot Engine 是否兼容(或至少是否能很好地支持)平板笔,
  • 应用,
  • 账户,
  • 搜索,
  • 隐私,
  • 更新和安全,
  • 时间和语言,
  • 网络和互联网。

我希望用户能够像平常一样通过我创建的环境更改 Windows 设置。

答案1

MS 设置应用程序是许多不同的内部 Windows 工具和 API 的混合体,这可能会使您的总体目标变得非常困难。

仅有的真正的万能解决方案是这些函数在 C++ 中被集中记录为Windows API 列表(以前称为 Win32 API),它们不是简单的即插即用功能。

虽然它们确实需要一些工作才能实现,但你经常可以找到其他人构建的示例或工具,而且大多数简单的功能几十年来都没有改变


话虽如此,以下是管理默认打印机等简单设置的其他一些方法的示例:

  • 在 C++ 中,使用 Windows API 文档设置默认打印机()像上面一样
  • Powershell 具有用于管理PrintManagement模块中打印机的原生命令,但可以找到许多社区模块并重新用于 PS 默认缺少的功能
  • 旧的命令行函数如RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n PrinterName
  • 通过注册表设置如:HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows\ Device=\\Server\PrinterName
  • 或者包装上述函数之一的各种第三方工具

大多数设置都会有上述选项的某种组合提供给您。


我看到其他软件提出的一个建议是利用ms-settings URI将某人直接带到需要更改设置的地方,尽管它会显示在 godot 之外

相关内容