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

时间:2009-07-11 20:05:45

标签: windows batch-file settings

我的一个程序似乎正在改变显示属性>外观>效果>每隔几个小时将设置拖动到关闭状态时显示窗口内容。

我不确定究竟是哪个程序,或者何时发生。我有许多程序似乎可能是罪魁祸首 - 壁纸旋转器,多个显示器的软件,多个虚拟桌面和切换,以及其他一些程序。

我只是想创建一个小批量脚本来定期运行并将设置重新设置为开启。

有谁知道如何在Windows中执行此操作?我正在使用xp pro sp3。

谢谢!

5 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:4)

您可以使用RegMon查找不断更改设置的程序。也许这比开始攻击更好。

答案 2 :(得分:2)

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

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

将文件另存为“显示窗口Contents.reg”双击此文件并重新启动将永久解决问题。如果您觉得有用,请发布消息。

Aravind Banerjee

答案 3 :(得分:1)

似乎控制该首选项的注册表设置是HKCU \ Control Panel \ Desktop \ DragFullWindows。您可以阅读更多相关信息here。但是,在我自己的计算机上尝试它并不会立即注册更改,因此批处理脚本不会这样做。您可能必须编写一个程序来使用SystemParametersInfo()来操作它。您可以传递SPI_SETDRAGFULLWINDOWS参数。 Here's一页解释更多。 Here's显示如何调用它的页面,虽然不是相同的参数。

答案 4 :(得分:0)

我怀疑它保存在注册表中 - 也许[HKEY_CURRENT_USER \ Control Panel \ Desktop] - “DragFullWindows”?

使用批处理文件每小时左右将注册表设置翻转回“1”会很容易。