虽然 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