前言
不知道大家有没有留意过,我们在拖动窗体的时候,有时候显示的是虚框,有时候显示的是窗体内容。可能有的朋友不是太明白,没关系,一图胜千言。请看图:
这下应该知道我在说什么了吧,但是具体是哪个选项跟拖动时的显示效果有关呢?:thinking:
设置
一个偶然的机会,我发现在性能选项里可以设置拖动时的显示效果。
我的电脑
,右键
,属性
,点击高级系统设置
按钮,在弹出的系统属性
对话框中的高级
Tab页下的 性能
组,点击设置(S)...
按钮,在弹出的性能选项
对话框中,选择自定义(C)...
,勾选拖动时显示窗口内容
复选框。即可在拖动时显示窗口内容,取消勾选后,拖动时只会显示虚框。具体设置如下图:
现在,我们知道在哪里设置了,如果用代码该怎么实现呢?我们知道,在windows
下,很多设置都是保存在注册表中的。如果我们能找到对应的注册表项,那么我们就可以用代码修改对应的注册表项就可以啦。但是这个设置对应的注册表项是哪个呢?我们应该怎么找到它呢?看过之前几篇排错文章的朋友一定猜到了,用process monitor
啊!在继续阅读之前,强烈建议你自己动手实战一下。
小提示: 因为是保存设置到注册表,所以我们只保留注册表写事件即可。
追本溯源
相信你已经自己动手找到关键的注册表项了:+1:。不过我还是把我的调查过程的录屏贴出来,方便没来得及手动实战的读者查阅。
原来该设置对应的注册表项是 HKCU\Control Panel\Desktop\DragFullWindows
。值为1
时拖动时显示窗体内容,值为0
时拖动时只显示虚框。
保存下面的代码为drag-full-window.reg
,双击导入注册表即可(重启生效)。
1 | Windows Registry Editor Version 5.00 |
知道对应的注册表项,用代码实现这个功能应该不难了吧?快快动手搞定它吧!
总结
windows
的很多设置都存放在注册表里,我们通过GUI
改变某项设置时,会更新对应对应的注册表值。process monitor
真是排错利器,心动了吗?赶快下载试用吧。
参考资料
- 《Windows Sysinternals 实战指南》