我创建了一个程序,可以在所有用户计算机上运行。 从我的服务器(\\ fs3 \ netlogon \ app.exe)启动该应用程序后,它在程序的整个生命周期中都保持打开状态。我通过在计算机管理中将其视为“打开文件”来识别它。 我可以强制从计算机管理关闭“打开文件”,并且程序仍然可以正常运行。
public partial class Primary : Form { *my code* }
Process[] procList = Process.GetProcessesByName(programName);
if (Process.GetProcessesByName(programName).Length == 1)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Primary());
}
else
{
foreach (Process p in Process.GetProcessesByName(programName))
{
if (Process.GetCurrentProcess().Id != p.Id)
{
p.CloseMainWindow();
p.Close();
p.Kill();
p.Dispose();
}
}
Main();
Example of many instances of the file loaded
在继续花时间开发一种全新的方法之前,我想问一下我是否使当前的格式有效。
我的目标是启动应用程序,关闭“打开文件”,并且应用程序继续运行没问题。
这可能是我的误解。
答案 0 :(得分:1)
如果找到现有实例,则不会明确关闭当前实例。
if (Process.GetProcessesByName(programName).Length == 1)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Primary());
}
else
{
Application.Shutdown();
}
编辑:固定的推理和解决方案