c# - 从正在运行的进程中获取 DLL 名称,可能吗?

标签 c# dll process

我正在寻找一种从正在运行的进程中获取 DLL 名称的方法,如果我表达得不好,请抱歉。

我需要通过进程的名称或 PID“连接”到该进程,并检索它正在使用的 DLL 名称(如果可能)。

问候。

最佳答案

是的,这是可能的。您可以使用Process 类。它有一个 Modules 属性,列出了所有已加载的模块。

例如,要在控制台列出所有进程和所有模块:

Process[] processes = Process.GetProcesses();

foreach(Process process in processes) {
    Console.WriteLine("PID:  " + process.Id);
    Console.WriteLine("Name: " + process.ProcessName);
    Console.WriteLine("Modules: ");

    foreach(ProcessModule module in process.Modules) {
        Console.WriteLine(module.FileName);
    }
}

您当然可以检查 Process.Id 以获得您想要的 PID 等。

有关更多信息,请查看此类的文档:-

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

注意:此代码可能会对您无权访问的某些系统进程造成干扰。

关于c# - 从正在运行的进程中获取 DLL 名称,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243306/

相关文章:

linux - 执行进程 n 个 cpu 周期

c - 在不同网络命名空间中的进程之间共享状态

c# - 跨语言编码标准

c# - 为什么不能在带有内联{get;的变量前使用[Space(15)]组; }?

DLL/共享库的异常

c++ - 使用托管 C++ 库时出现 WS2_32.dll_unloaded 异常

c# - ForEach TreeNode.Nodes 取出空节点

c# - 设置 RadioButtonList 的选定值无法按预期工作

c++ - 如何将x86 DLL从WOW64进程注入(inject)到x64进程

process - Contiki编译错误, “ERROR: address 0x820003 out of range at line 1740 of…”