在我工作的 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”。双击此文件并重新启动将永久修复该问题。如果您觉得有用,请发消息。