以编程方式更新桌面“拖动时显示窗口内容”

我的一个程序似乎正在改变显示属性>外观>效果>显示窗口的内容,而拖动设置closures每隔几个小时。

我不确定究竟哪个程序,或者什么时候发生。 我有一些似乎可能的罪魁祸首 – 墙纸旋转器,多显示器软件,多个病毒桌面和切换,以及其他一些程序。

我只是想创build一个小批处理脚本定期运行,并将设置重新打开。

有谁知道如何在Windows中做到这一点? 我正在使用XP专业版SP3。

谢谢!

您可以使用RegMon来查找不断更改设置的程序。 也许这是一个比黑客更好的开始。

最好的选择是使用受支持的API以编程方式执行此操作。 我没有测试过这个,但它应该做的伎俩:

SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, TRUE, NULL, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE) 

您可以使用SPI_GETDRAGFULLWINDOWS来查看该位是否被翻转,以避免不必要地触发WM_SETTINGCHANGE。

这个问题有一个简单而有效的解决方案。 在记事本中键入以下行:

Windows注册表编辑器版本5.00

[HKEY_CURRENT_USER \ Control Panel \ Desktop]“DragFullWindows”=“1”

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VisualEffects \ DragFullWindows]“CheckedValue”= dword:00000001“UncheckedValue”= dword:00000001

将文件另存为“Show Window Contents.reg”双击此文件并重新启动将永久解决问题。 发布消息,如果你觉得这有用。

Aravind Banerjee

似乎控制该首选项的注册表设置是HKCU \ Control Panel \ Desktop \ DragFullWindows。 你可以在这里阅读更多。 但是,在我自己的计算机上尝试不会立即注册更改,因此批处理脚本不会执行此操作。 您可能需要编写一个程序来使用SystemParametersInfo()来操作它。 您可以将它传递给SPI_SETDRAGFULLWINDOWS参数。 这是一个更详细的解释。 以下是显示如何调用它的页面,尽管不是相同的参数。

我怀疑它保存在注册表中 – 也许[HKEY_CURRENT_USER \控制面板\桌面] – “DragFullWindows”?

使用批处理文件,每隔一小时左右将注册表设置重新设置为“1”将很容易。