【问题标题】:How do I get a list of "project names" from processes (not process name or window title) [duplicate]如何从流程中获取“项目名称”列表(不是流程名称或窗口标题)[重复]
【发布时间】:2020-04-01 20:42:27
【问题描述】:

我正在寻找一种列出每个进程的应用程序名称的方法。当您在 Visual Studio 中制作项目时,类似于项目名称。

我不想要的东西:

  1. 窗口标题
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
    if (!String.IsNullOrEmpty(p.MainWindowTitle))
    {
        Console.WriteLine(p.MainWindowTitle);
    }
}
  1. 进程名称
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
    Console.WriteLine(p.ProcessName);
}

我在寻找什么:

任务管理器列表中的条目:

Task Manager List

【问题讨论】:

    标签: c# process system.diagnostics processlist


    【解决方案1】:

    虽然 p.MainModule 为某些进程抛出(查看),

    你需要的可以这样实现:

        Process p = Process.GetProcessesByName("winword")[0];
        string fileName = p.MainModule.FileName;
    
        FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(fileName);
    
        // Writes "Microsoft Word"
        Console.Write(myFileVersionInfo.FileDescription);
    

    编辑 1:

    如果您在 64 位环境中以 32 位运行,似乎 p.MainModule 无法访问。

    当编译为 x64 时,可以显示在我的系统上与我的用户一起运行的所有进程。对于其他人,可能需要提升。

    Failed: svchost, Reason: Access is denied
    Succeeded: chrome = Google Chrome
    Failed: sqlservr, Reason: Access is denied
    Succeeded: SCNotification = SCNotification
    Succeeded: VirtualMIDISynth = CoolSoft VirtualMIDISynth
    Failed: NisSrv, Reason: Access is denied
    Failed: TabTip32, Reason: Access is denied
    Failed: RegSrvc, Reason: Access is denied
    Failed: dwm, Reason: Access is denied
    Failed: LMS, Reason: Access is denied
    Failed: svchost, Reason: Access is denied
    Succeeded: chrome = Google Chrome
    Failed: EvtEng, Reason: Access is denied
    Succeeded: OmniSharp = OmniSharp
    Failed: taskhost, Reason: Access is denied
    Failed: svchost, Reason: Access is denied
    Succeeded: Code = Visual Studio Code
    Succeeded: devenv = Microsoft Visual Studio 2013
    Succeeded: ChsIME = Microsoft IME
    Failed: SppExtComObj, Reason: Access is denied
    Failed: svchost, Reason: Access is denied
    Failed: WmiPrvSE, Reason: Access is denied
    Succeeded: Code = Visual Studio Code
    Failed: isa, Reason: Access is denied
    Succeeded: conhost = Console Window Host
    

    【讨论】:

    • 不幸的是,我使用的库要求我的项目为 32 位。
    • 很抱歉听到这个消息。祝你好运
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2013-05-09
    相关资源
    最近更新 更多