C#Application.Run-关闭打开的文件

时间:2019-06-05 13:43:17

标签: c#

我创建了一个程序,可以在所有用户计算机上运行。 从我的服务器(\\ 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

在继续花时间开发一种全新的方法之前,我想问一下我是否使当前的格式有效。

我的目标是启动应用程序,关闭“打开文件”,并且应用程序继续运行没问题。

这可能是我的误解。

1 个答案:

答案 0 :(得分:1)

如果找到现有实例,则不会明确关闭当前实例。

   if (Process.GetProcessesByName(programName).Length == 1)
   {   
       Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       Application.Run(new Primary());
   }
   else
   {
       Application.Shutdown();
   }

编辑:固定的推理和解决方案