c# - mono : Wrong Process. ProcessName 中错误的解决方法

标签 c# linux mono

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

例如,您可能会得到“kdeinit4”(在 SUSE 上看到)而不是进程名称“kwrite”。

在 Ubuntu 上,我什至看到了像“kdeinit4;5535948c(已删除)”而不是“kwrite”这样的废话。

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

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

所以无论我尝试什么,它都充满了错误。 我能做什么?

最佳答案

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

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

ProcessName 失败的所有计算机上,它就像一个魅力。

关于c# - mono : Wrong Process. ProcessName 中错误的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29827331/

相关文章:

c# - MEF + WCF 服务主机?

c# - 是否可以在没有 UWP 的情况下使用 .NET Native?

linux - 如何在 Linux 下使用属于子用户命名空间的文件?

c - 如何在C、linux中为FTP客户端启动主动模式

C#:泛型方法不调用特定方法重载

c# - 如何将更新传播到 Colectica DDI 项目图表中的所有项目?

c# - 具有内部方法的 Java 公共(public)类

linux - 找出进程在 Linux 中休眠了多长时间?

.net - mkbundle 未从当前目录找到依赖项

c# - 了解 C# 泛型和 Nullable 值类型。返回 null 或 nullable