如果您使用单声道并使用Process.ProcessName
,则可能会在某些计算机上出现错误的结果。
例如,代替流程名称“kwrite
”,您可能会收到“kdeinit4
”(在SUSE上看到)。
在Ubuntu上,我甚至看到像“kdeinit4;5535948c (deleted)
”而不是“kwrite
”这样的完全废话。
注意:在其他计算机上,结果可能是正确的。
如果我使用Process.MainModule.ModuleName
,它会重新使用相同的错误名称。
如果我使用Process.MainModule.FileName
它会给出错误的路径。除此之外,这些命令非常慢。
所以无论我尝试什么,它都充满了bug。 我该怎么办?
答案 0 :(得分:1)
解决方法可以用两行完成:
String sProcFile = String.Format("/proc/{0}/comm", proc.Id);
String sProcName = File.ReadAllText(sProcFile).Trim();
它在ProcessName
失败的所有计算机上都像魅力一样。