如何以编程方式更改 Windows 10 任务栏图标大小
How to change Windows 10 taskbar icon size programmatically
在Windows10中,您可以选择任务栏的小图标或大图标。可通过 UI 右键单击任务栏并转到“设置”来进行设置:
也可以通过注册表编辑器 (regedit.exe) 修改以下项来调整此设置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarSmallIcons
大图标的值为0,小图标的值为1。但与 UI 设置相反,使用此方法您需要注销并登录 Windows 用户才能更新任务栏(重新启动 explorer.exe 进程也可以,但这不是选项)。
我希望能够更新任务栏并以编程方式在小图标或大图标之间进行选择。是否有任何 API 或任何更新任务栏的方法,以便它无需注销即可从注册表中读取?我的具体目标是在我使用小屏幕(笔记本电脑上的那个)时自动显示小图标,在我使用大屏幕(我的常规大屏幕)时自动显示大图标。
编辑:由于提供的解决方案,现在 Adaptive Taskbar for Windows 已成为现实 :D
在 Windows 10 之前你可以 send the WM_SETTINGCHANGE
message to the taskbar but it seems like that no longer works。您可能需要调试 Explorer.exe 才能弄清楚现在是如何通知它的。
编辑:
我刚刚用一个简单的 C++ 应用程序对此进行了测试,如果您设置一个特殊的 LPARAM 字符串,它也适用于 Windows 10:
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, (LPARAM)L"TraySettings", SMTO_NOTIMEOUTIFNOTHUNG, 3000, NULL);
在Windows10中,您可以选择任务栏的小图标或大图标。可通过 UI 右键单击任务栏并转到“设置”来进行设置:
也可以通过注册表编辑器 (regedit.exe) 修改以下项来调整此设置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarSmallIcons
大图标的值为0,小图标的值为1。但与 UI 设置相反,使用此方法您需要注销并登录 Windows 用户才能更新任务栏(重新启动 explorer.exe 进程也可以,但这不是选项)。
我希望能够更新任务栏并以编程方式在小图标或大图标之间进行选择。是否有任何 API 或任何更新任务栏的方法,以便它无需注销即可从注册表中读取?我的具体目标是在我使用小屏幕(笔记本电脑上的那个)时自动显示小图标,在我使用大屏幕(我的常规大屏幕)时自动显示大图标。
编辑:由于提供的解决方案,现在 Adaptive Taskbar for Windows 已成为现实 :D
在 Windows 10 之前你可以 send the WM_SETTINGCHANGE
message to the taskbar but it seems like that no longer works。您可能需要调试 Explorer.exe 才能弄清楚现在是如何通知它的。
编辑:
我刚刚用一个简单的 C++ 应用程序对此进行了测试,如果您设置一个特殊的 LPARAM 字符串,它也适用于 Windows 10:
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, (LPARAM)L"TraySettings", SMTO_NOTIMEOUTIFNOTHUNG, 3000, NULL);