如何枚举CLR管理的正在运行的进程?
如何枚举正在运行的进程?应用程序域怎么样?
会有任何与安全相关的问题吗?
我对仅 .NET 4.0、仅 Windows 7/Windows Server 2008 R2 的解决方案感到满意。
PS:这就是我正在努力做的事情...... ProcessExplorer.NET 问题
How to enumerate running processes? What about app domains?
Would there be any security-related gotchas?
I would be comfortable with .NET 4.0 only, Windows 7/Windows Server 2008 R2-only solution.
P.S.: This is what I am trying to do...
ProcessExplorer.NET question
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
试试这个
使用托管和非托管代码检查正在运行的进程
Try this
Examine Running Processes Using Both Managed and Unmanaged Code
System.Diagnostics.Process.GetProcesses() 将列出所有正在运行的进程作为 Process 对象。
System.Diagnostics.Process.GetProcesses() will list all the running processes as Process objects.
使用上面的 Process.GetProcesses 后,您可以使用 ICLRMetaHost::EnumerateLoadedRuntimes 来查看进程是否正在运行 CLR 实例,并获取其中运行的 CLR 版本。 http://msdn.microsoft.com/en-us/library/dd233119.aspx 。该 API 不直接向 .NET 公开,但它是 COM,因此您可以 tlbimport mscoree.dll 并使用 .NET 中自动生成的包装器。
Once you use Process.GetProcesses above, you can use ICLRMetaHost::EnumerateLoadedRuntimes to see if the process is running an instance of the CLR, and get the versions of the CLR running in it. http://msdn.microsoft.com/en-us/library/dd233119.aspx. The API isn't exposed to .NET directly, but it's COM so you can tlbimport mscoree.dll and use the autogenerated wrappers in .NET.