如何在 Win 2003 上从 VB 6 枚举进程?
我有一些旧的 VB6 代码,其中一部分通过调用 CreateToolhelpSnapshot 枚举机器上正在运行的进程。 我尝试在 Win 2003 R2 上运行此代码,并且我有理由对它返回的进程列表有点怀疑。 我发现 这篇文章 这让我认为我可能需要使用不同的2003 年的 API 调用。但是我找不到他提到的 Microsoft 知识库文章。 或者说我怎么也找不到英文版。 我确实找到了德语文章,但我看不懂德语。 我认为它建议我使用名为 EnumProcs 的 API,但我在 Microsoft API 文档中没有找到任何此类 API(至少在 msdn.microsoft.com 上没有)。
那么,我应该在 Win 2003 上使用 CreateToolhelpSnapshot 还是应该使用其他一些 API? 有谁知道我可以在哪里找到那篇知识库文章的英文副本吗?
I've got some old VB6 code part of which enumerates the running processes on the machine via a call to CreateToolhelpSnapshot. I'm attempting to run this code on Win 2003 R2 and I have reason to be a little suspicious of the list of processes that it's returning. I found this article which leads me to think I might need to use a different API call on 2003. However I cannot find the Microsoft KnowledgeBase article that he mentions. Or I can't find the English version anyway. I did find the article in German but I can't read German. I think it's advising me to use an API called EnumProcs but I don't find any such API in the Microsoft API docs (at least not at msdn.microsoft.com).
So, should I be using CreateToolhelpSnapshot on Win 2003 or is there some other API which I should use? And does anyone have any idea where I might find a copy of that KB article in English?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这篇文章非常全面地列出了如何操作你需要。 它基本上使用 EnumProcesses Windows API 调用而不是 GetActiveProcesses 调用。
请注意,不仅是 Windows Server 2003,还包括 NT 系列的所有 Windows 版本(XP、Vista 等)。
This article gives quite a comprehensive listing of how to do what you need. It basically uses the EnumProcesses Windows API call instead of the GetActiveProcesses one.
Note that it's not just Windows Server 2003, but all the Windows versions of the NT family (XP, Vista, etc.) too.
Google 翻译非常出色地将德语知识库页面翻译成英语:如何:使用 Win32 API 枚举应用程序。
Google Translate does an excellent job of translating that German KB page into English: HOW TO: Enumerate Applications Using Win32 APIs.