windows - 如何增加 Windows 10 的最大 GDI 对象数量?

标签 windows vb6 registry windows-10

在网上搜索并没有找到足够的答案我不得不再次提问: 有什么方法可以增加 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/

相关文章:

c - 使用 RtlVirtualUnwind api 检索参数

python - 将现有的 Anaconda 安装移动到新的 Windows

winapi - 如何使用 VB6 获取硬件信息,例如 CPU 名称、总 RAM 等?

postgresql - VB6依赖访问网络postgresql数据库

windows - 了解对 dll 文件的注册表数据引用的负偏移量

windows - Postgresql无法通过PGAdmin4连接应用服务器

vb6 - pdftoprinter.exe 方向页命令

windows - 使用 python 3 winreg 正确解密注册表 REG_BINARY?

c++ - 删除注册表键值

windows - 为 Windows Phone 8.1 创建崩溃日志