0

我有一个似乎很常见的问题。我在一台最棒的电脑上运行 Windows 7 Home Premium(去年买的时候),某些视觉效果会自动关闭。

我的平均用户体验评分很高,所以它不能解释为什么会发生这种情况。唯一被关闭的功能是“拖动时显示窗口内容”选项。这真的让我很烦。

目前在线上没有针对此问题的有效解决方案。除了“必须与您机器上安装的另一个应用程序存在冲突”。

是的,我确实知道是什么应用程序导致了这种冲突。这是我该死的互联网提供商的软件——你知道……当你连接到网络时,你绝对必须始终打开该应用程序。

于是,我有了一个想法。如果我可以订阅一个事件,以便我在后台运行的应用程序将检测到此“拖动时显示窗口内容”选项何时关闭 - 然后我的应用程序将再次将其重新打开。

当我手动执行此操作时,它似乎会持续大约一两个小时,然后再次关闭。

是否可以处理这些类型的事件,并重新启动某些视觉效果功能?如果是这样,是否有任何资源?

我还没有找到关于这个主题的任何东西。

在此处输入图像描述

4

1 回答 1

1

是的,当系统设置更改时, WM_SETTINGSCHANGE消息会发送到所有窗口。然后您可以使用 SPI_GETDRAGFULLWINDOWS 调用SystemParametersInfo以确定“拖动时显示窗口内容”是否已禁用并使用 SPI_SETDRAGFULLWINDOWS 启用它。

因此,您需要做的就是创建一个带有表单的应用程序(甚至可以保持隐藏状态)并覆盖表单WndProc并使用 p/Invoke处理WM_SETTINGSCHANGE消息和调用。SystemParametersInfoSystemParamtersInfo的 p/Invoke 定义可在 pinvoke.net 获得

尽管可能更容易的是更改HKCU\Control Panel\Desktop\DragFullWindows注册表值的安全性,使其无法更改。

于 2012-05-28T14:41:28.107 回答