我需要知道一个进程是否已经在运行,但我不想对其名称进行硬编码.我宁愿从* .exe派生它,所以我进行了一些实验并创建了一个简单的控制台应用程序,我将项目属性中的程序集名称设置为foo,然后将foo.exe重命名为bar.exe.我检查了正在运行的进程,确实是正在运行的bar.
它是否是设计的,我可以依赖于这种行为,或者一个进程是否具有与exe不同的名称,它是否适用于所有类型的exe文件或仅适用于.NET程序集?
解决方法
你
can’t change the image name的过程.这是由Windows设置的,不可更改.它将使用可执行文件的名称来设置它,因此使用它是安全的.
您可以简单地使用the assembly name from .NET,而不是使用该过程来获取可执行文件名称:
System.AppDomain.CurrentDomain.FriendlyName