如何允许不同的登录ID在同一台本地计算机上登录一次应用程序
How to allow different login ID to be logged into the application for once in the same local computer
我有一个 window 应用程序,它由初始屏幕、登录 window 和主 window 组成。正如我所搜索的,大多数单实例应用程序检查是在应用程序启动时 (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中完成的,如何实现?
通过比较进程主标题window:
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
我有一个 window 应用程序,它由初始屏幕、登录 window 和主 window 组成。正如我所搜索的,大多数单实例应用程序检查是在应用程序启动时 (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中完成的,如何实现?
通过比较进程主标题window:
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