是否可以在控制面板中以编程方式调用“应用”按钮?

时间:2015-09-27 18:24:16

标签: c# .net winapi windows-8.1 windows-10

许多注册表更改要求您再次注销登录以应用更改。但是,如果按Apply部分中的Appearance and Personalisation按钮,外观会刷新而无需注销:

Apply Button

我想知道Windows是否为此功能提供了API,以便可以通过编程方式调用它而无需注销?

如果可以运行简单的控制台应用程序或PowerShell脚本来提交更改,那么测试某些设置要容易得多。

1 个答案:

答案 0 :(得分:3)

如果这些是使用API​​更改设置的文档化方法,则您应该更喜欢直接更改注册表。对于许多设置,您可以使用SystemParametersInfo function

假设不能解决问题,您可以使用相同的方式通知应用程序某些内容已发生变化:它会广播WM_SETTINGCHANGE message。许多应用程序会在收到消息时侦听该消息并重新加载它们。

快速搜索出现了此广播的C#版本:c# Registry - commit changes on the MSDN forums

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, (UIntPtr)0, "Environment", SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 5000, out result);