【发布时间】:2022-01-12 13:10:50
【问题描述】:
马上开始,请不要太苛刻地判断,我对这个论坛还比较陌生,还没有太熟练地提出我的问题:)
背景:
因为我必须经常在新计算机上安装 Windows 并进行配置,所以我发现一些设置总是相同但无论如何都很重要(例如显示文件类型结尾、禁用 Cortana 和新闻和兴趣、将 Word/Excel 固定到任务栏、等等)
问题:
我的问题是关于任务视图按钮 - 我将它设置为隐藏在注册表中(但让有机会随时重新激活它)。当然 - 您可以手动更改任务栏设置,但对于每个程序,这将不起作用。由于此类更改在正常情况下需要重启或重启“explorer.exe”才能适应:
如何在不终止任何进程的情况下以编程方式禁用任务视图按钮(或一般刷新任务栏)?
不 - 其他类似的问题没有帮助,因为它们与系统托盘或旧操作系统有关,它的解决方案不再有效。
我的环境:
Windows 10 32/64 位 21H1 无论程序语言如何,我对几乎任何解决方案都很满意。
提前感谢您的帮助。
【问题讨论】:
-
使用 Spy++ 检查设置应用程序是否广播消息,WM_SETTINGSCHANGE 可能带有特定的 lParam。
-
嗯,隐藏任务视图按钮时有很多条目(称为“活动应用程序”),但只有一个您提到的开头:WM_SETTINGCHANGE wFlag:0000 pszMetrics:0309E388
-
pszMetrics:0309E388 是该内存位置的字符串,您需要使用调试器或如果这是一个广播消息,只需一个简单的测试应用程序就可以找出它是什么......跨度>
-
我不知道我是如何走在正确的道路上的。即使是我的 C++ 应用程序中没有参数的条目也无法被 Spy++ 识别 [例如。 SendMessage(NULL, (LPARAM) "WM_WINDOWPOSCHANGED lpwp:0309E430", NULL, (LPARAM)L"TrayButton");] 你能在这行找到任何错误或给我一个例子,也许是 C++?
-
“托盘按钮”从何而来?你为什么要发送到NULL?发送到 HWND_BROADCAST
标签: windows refresh explorer taskbar