我最终正在寻找一种方法来设置自动警报,如果进程的 GDI 对象计数接近默认的 10,000 限制,它将警告我。我公司使用的某些软件存在一个已知问题,导致 explorer.exe 累积计数,直到它在没有警告的情况下崩溃 - 显然在软件的更高版本中对此进行了修复,但由于我以外的原因我们无法升级控制。我的想法是创建一个后台程序/脚本,当它看到 GDI 计数接近 10,000 限制时会弹出警报。但是,我似乎可以查看 GDI 计数的唯一方法是通过任务管理器或进程资源管理器中的 GUI——如果我能以某种方式自动将其转储到文本文件中,我会被设置,但我不知道是否这是可能的。
我试过 GDIView 软件,但我们公司的防病毒软件标记了它,这超出了我的控制范围。
我已经下载了 sysinterals,但是我想不出任何方法来获取命令行工具之一来回显我可以在 Process Explorer 中获得的 GDI 计数。我也尝试过任务列表,但同样找不到从中获取 GDI 计数的方法。
作为参考,我在这里使用的是 Windows 10 机器。我还启用了 linux 子系统,并且能够通过它运行 Ubuntu。如果有任何用处,我愿意在批处理或 python 中做一些事情 - 尽管似乎 powershell 被阻止运行脚本(虽然我可能能够解决这个问题)。
我找到了一小部分 Powershell 代码,它会为您提供 Rudolf 在获取 Powershell 中每个进程的 GDI 对象计数中的每个进程计数
应该可以修改 try ... Catch 语句中的命令以添加与您的资源管理器名称匹配的if 语句并发布消息框。