单声道错误的解决方法:错误的Process.ProcessName

时间:2015-04-23 15:01:05

标签: c# linux mono

如果您使用单声道并使用Process.ProcessName,则可能会在某些计算机上出现错误的结果。

例如,代替流程名称“kwrite”,您可能会收到“kdeinit4”(在SUSE上看到)。

在Ubuntu上,我甚至看到像“kdeinit4;5535948c (deleted)”而不是“kwrite”这样的完全废话。

注意:在其他计算机上,结果可能是正确的。

如果我使用Process.MainModule.ModuleName,它会重新使用相同的错误名称。 如果我使用Process.MainModule.FileName它会给出错误的路径。除此之外,这些命令非常慢。

所以无论我尝试什么,它都充满了bug。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

解决方法可以用两行完成:

String sProcFile = String.Format("/proc/{0}/comm", proc.Id);
String sProcName = File.ReadAllText(sProcFile).Trim();

它在ProcessName失败的所有计算机上都像魅力一样。