如何允许不同的登录ID在同一台本地计算机上一次登录到应用程序

本文关键字:登录 一台 计算机 上一次 应用程序 何允许 ID | 更新日期: 2023-09-27 18:07:16

我有一个由启动屏幕、登录窗口和主窗口组成的窗口应用程序。正如我所搜索的,大多数单实例应用程序检查是在应用程序启动时进行的(App.xaml.cs):

public partial class App: Application 
{
  private static Mutex mutex = null;
  protected override void OnStartup(StartupEventArgs e) 
  {
    const string appName = "MyAppName";
    bool createdNew;
    mutex = new Mutex(true, appName, out createdNew);
    if (!createdNew)
    {
      //app is already running! Exiting the application  
      Application.Current.Shutdown();
    }
    base.OnStartup(e);
  }
}

对于我的例子,我想只允许一个具有不同登录ID的用户在同一台本地计算机上一次登录到应用程序。我如何在Login.xaml.cs或MainWindow.xaml.cs中实现上述方法,因为上面的方法是在App.xaml.cs中完成的?

如何允许不同的登录ID在同一台本地计算机上一次登录到应用程序

通过比较进程主标题窗口:

public void SingleInstanceHandler()
{
    Process[] procList = Process.GetProcesses();
    foreach(Process proc in procList)
    {
      if (!string.IsNullOrEmpty(proc.MainWindowTitle))
      {
        if (proc.MainWindowTitle == windowTitle) 
        {
          //Show relevant message
          Application.Current.Shutdown();
        }
      }
    }
}

这不仅可以放在App.xaml.cs中,也可以放在Login.xaml.cs或MainWindow.xaml.cs