我在.NET中使用C#。防止单个可执行文件的多个进程实例
我想防止同一个可执行文件的两个实例同时运行,但我不想阻止从另一个文件夹运行的相同进程。
例如,我有一个可执行文件是在两个不同的位置:
C:\ MyProject的\万事达\的Program.exe
C:\ MyProject的\从属\的Program.exe
这些是相同的.exe文件,但在两个不同的位置。
我想允许一个从Master文件夹运行的Program.exe实例和一个来自Slave文件夹的实例,但没有任何两个实例。
我试图通过检查具有相同名称(Process.GetProcessesByName)的进程数量来做到这一点,但后来我不能区分这两者。
我发现的最接近的是从过程中获取模块。
列表中的第一个是exe的ProcessModule。但我不确定这是否会永远是名单上的第一个。是否有任何保证,还是有解决问题的更好解决方案?要做到这一点
我真的投票关闭这个重复的[this](http://stackoverflow.com/questions/819773/run-single-instance-of-an-application-using-mutex),当我意识到你给予的细微差别时。抱歉。但是,您仍然可以按照该方法进行操作,但是会将完整的路径名编码为互斥体的名称,从而允许每个目录上的实例。 –
没问题。我甚至不知道我的解释是否足够清楚。 :) –