VB.Net 3.5 Windows - 如何获取进程用户对象计数

发布于 2024-09-09 06:34:02 字数 232 浏览 1 评论 0原文

任何人都可以告诉我如何获取当前进程的“用户对象”的当前计数(如任务管理器中所示)。

我了解如何使用以下方法获取句柄计数:

Process.GetCurrentProcess.HandleCount

但是我们的应用程序只需打开特定表单的 17 个实例就可以达到 10,000 个 USER 对象计数,因此我们想尝试在用户达到限制之前警告用户资源正在变少和应用程序炸弹。

Can any one please advise me how I can get the current count of "USER Object"s (as shown in task manager) for the current process.

I see how to get the handle count using:

Process.GetCurrentProcess.HandleCount

But our application can reach a USER Object count of 10,000 just by opening 17 instances of a particular form so we would like to try and warn a user that resources are getting low before they reach the limit and the application bombs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

破晓 2024-09-16 06:34:02

如果我正在考虑正确类型的用户对象,您可以使用 GetGuiResources API函数。请参阅此处获取 C# 示例(第二个发送 1 作为标志的)。

下面是代码的 VB 翻译:

Imports System.Runtime.InteropServices

<DllImport("User32")> _
Public Shared Function GetGuiResources(ByVal hProcess As IntPtr, ByVal uiFlags As Integer) As Integer
End Function

Public Shared Function GetGuiResourcesUserCount() As Integer
    Return GetGuiResources(Process.GetCurrentProcess().Handle, 1)
End Function

If I'm thinking of the right kinds of user objects you can do it with the GetGuiResources API function. See the pinvoke page for it here for a C# sample (the second one that sends in 1 as the flag).

Here's a VB translation of the code:

Imports System.Runtime.InteropServices

<DllImport("User32")> _
Public Shared Function GetGuiResources(ByVal hProcess As IntPtr, ByVal uiFlags As Integer) As Integer
End Function

Public Shared Function GetGuiResourcesUserCount() As Integer
    Return GetGuiResources(Process.GetCurrentProcess().Handle, 1)
End Function
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文