在网上搜索并没有找到足够的答案我不得不再次提问: 有什么方法可以增加 Windows 10 的 GDI 对象的最大数量?
我正在使用的应用程序是用 VB6 编写的,带有一些第三方控件(可能会从控件泄漏),并且它使用大量子窗口来显示应用程序中的数据。
编辑: 该应用程序本身旨在创建非常大的用户控件的多个实例。每个控件都包含经过大量修改的第三方网格、工具栏和窗口窗体。表单本身可以打开不同的用户控件(带有网格、工具栏和表单)等等。因此创建了大量句柄。我们总是寻找漏洞并立即修复它们,但不幸的是,并不是所有的漏洞都是漏洞,而是应用程序设计的副作用(这是在我之前设计的)。
我尝试了几件事,从增加下面的注册表值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota]
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota]
增加桌面堆但没有任何效果。即使在重新启动后,限制仍然是 10000 个句柄。
似乎有一个隐藏在 Windows 或注册表中某处的静态值会覆盖该值,因为即使降低该值也不会影响 10000 个句柄的限制。
提前致谢!
最佳答案
您可以更改当前版本的 Windows 10 的限制(已在 1803、1809、1903、1909 和 2004 上测试)
对于 GDI 句柄,更改此注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
范围:256 - 65,536。默认值:10000
对于 USER 句柄,更改此注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota
范围:200 - 18,000。默认值:10000
记得重启以使更改生效。
关于windows - 如何增加 Windows 10 的最大 GDI 对象数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612364/