Windows中同时打开巨多窗口的方法.

来源:互联网 发布:java web后端开发 编辑:程序博客网 时间:2024/05/16 09:35
不知大家在平时使用电脑的时候是不是会打开很多的窗口, 但是我的确喜欢这样, 但windows在打开了很多的窗口的时候就会出现"不稳定"的现象. 诸如: 不能创建窗口, 窗口上的菜单忽然不能正常显示等等怪现象, 刚开始我也"认命"了, 以为真是资源不够了或是MS设了窗口数目上限了, 但总是感到不爽, 总觉得电脑资源被浪费了, 内存空闲那么多, 为什么就是不能再打开程序/窗口了呢(当时差不多已经打开了25个左右的窗口, 其中有5个VS.NET2003, 10个IE窗口). 而且觉得MS更不可能把这个数目定死啊, 以后扩展怎么办呢.
 
经过我大海捞针, 终于在注册表的一个地方发现了一个线索, 这个线索终于让我找到了罪魁祸首.
 
事情是这样di:
 
windows中的窗口要使用系统的一个资源--GDI资源, 资源数目越多, 可以创建的窗口也会越多. 如果系统中GDI资源用完, 窗口就自然不能正常显示了, 所以就会出现平时难以一见的怪现象(有时窗口上的一些组件会莫名其妙的消失了, 呵呵).
 
所以只要GDI资源足够多, 窗口就可以不断创建.
 
不幸的是MS果真做了一个限制:
对于Windows2000/XP, 系统默认情况下GDI资源的上限都是10000
 
但MS也没有做绝, 这个值的确可以修改.
这个值的为止在:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows
这个键下有这样两个值:
GDIProcessHandleQuota 和 USERProcessHandleQuota
 
一看就明白了吧, 呵呵.
他们的默认值都是10000
这两个值的范围是:
Windows XP:  This value can be set to a number between 200 and 65,536.

Windows 2000:  This value can be set to a number between 200 and 16,384.

 

MSDN如是说.

 

幸亏我用的是XP啊, 要不然我非得重装系统.

把这两个值都改成了50000, 重启了一下, 哇, 现在打开巨多窗口都正常了(总共最多同时打开了50左右的窗口), 真爽!!!

 

注意点:

两个值都要增加. 因为访问GDI资源得时候是通过句柄得, 所以句柄资源也要增加才行. 而且句柄资源还不光是用来访问GDI资源的.

 

这两个值修改后系统需要重启才能生效.

 

电脑配置要好一些, 推荐512MB内存, 虚拟内存也要设高点, 最好>2G.

 

 

此文谨献给跟我一样有这样"癖好"的人, ^_^.

如有错误之处请赶快指出, 要不然就误人子弟了, 哈哈.

原创粉丝点击