如何防止在两台不同的计算机上运行exe
本文关键字:计算机 exe 运行 两台 何防止 | 更新日期: 2023-09-27 18:10:24
我有一个用c#编写的表单应用程序。我把这个exe放到我公司的服务器上,所有的电脑都可以访问。我需要找到一个解决方案来知道这个exe是否在另一台计算机中运行。
因此,当一台计算机试图运行应用程序时,我应该检查另一台计算机是否已经运行相同的应用程序。
我在SO中发现了一些东西,但只有当同一台计算机运行两次exe时,它们才能正常工作。
这里的在服务器上设置一个用户可写的文件。当应用程序启动时,打开该文件进行写入,并在静态字段中保留对Stream的引用。当应用程序关闭时,关闭流。当应用程序崩溃或网络故障时,该文件将由操作系统自动释放。
例如,在Program.cs中:
private static Stream lockFile;
public static void Main()
{
try
{
try
{
lockFile = File.OpenWrite(@"''server'folder'lock.txt");
}
catch (IOException e)
{
int err = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
if (err == 32)
{
MessageBox.Show("App already running on another computer");
return;
}
throw; //You should handle it properly...
}
//... run the apps
}
finally
{
if (lockFile != null)
lockFile.Dispose();
}
}
基于
- 如何防止在两台不同的计算机上运行exe
- errorCode for The process cannot access file 'XYZ'因为它正在被另一个进程使用