“拖动时显示窗口内容”一直被禁用

“拖动时显示窗口内容”一直被禁用

在我工作的 Windows 7 Enterprise x64 机器上,“拖动时显示窗口内容”经常被禁用。

我目前已将“视觉效果”设置为“调整为最佳外观”,但时不时地,我只会拖动窗口边框 - 而不是内容。

视觉效果:调整为最佳外观

(点击图片放大)

当我遇到这种情况时,“拖动时显示窗口内容”复选框仍处于选中状态。取消选中该复选框,应用设置,选中该复选框并应用设置即可恢复功能。

我以前使用“自定义”而不是“调整为最佳外观”。当时我遇到这个问题时,“拖动时显示窗口内容”未选中。我可以选中它,应用设置,但“一段时间”后,问题又会再次出现。

我不知道登录脚本或 GPO 中的任何设置会导致此问题。注销并重新登录,甚至重新启动计算机,都无法重现此问题(至少不是始终如此)。

我很少注销或重新启动,但我经常在家里通过 RDP 连接。我尝试从 Windows XP 计算机连接到我的会话,在 RDP 客户端中禁用和启用“拖动时显示窗口内容”。无论哪种情况,“拖动时显示窗口内容”都已启用,并且在本地登录时可以正常工作 - 正如预期的那样。

值得一提的是,我的电脑配备了 nVidia NVS 4200M 和 Intel HD 3000 显卡。

有人遇到过这个或类似的问题吗?你知道是什么原因造成的吗?或者如何确定?

谢谢!

答案1

就我而言,每次启动已发布的应用程序时,Citrix Receiver 都会禁用该设置。

我还没有找到禁用此行为的方法。相反,我创建了一个小型 C++ 控制台应用程序来重新启用该设置。它每 5 分钟通过计划任务运行一次。

整个源代码可以使用 VS Studio 社区版进行编译:

#include <windows.h>
#include <tchar.h>

int _tWinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPTSTR    lpCmdLine,
    int       cmdShow)
{
    BOOL enabled;

    SystemParametersInfo(SPI_GETDRAGFULLWINDOWS,
        NULL, &enabled, 0);

    //printf("Current 'dragfullwindow' option status: %d\n", enabled);

    if (!enabled)
    {
        SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,
            TRUE,
            NULL,
            SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
    }
    return 0;
}

答案2

这个问题有一个简单有效的解决方法。在记事本中,输入以下几行:

Windows 注册表编辑器版本 5.00

[HKEY_CURRENT_USER\控制面板\桌面] “DragFullWindows”=“1”

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop] “DragFullWindows”=“1”

将文件另存为“Show Window Contents.reg”。双击此文件并重新启动将永久修复该问题。如果您觉得有用,请发消息。

相关内容