在WPF中创建单实例应用程序
创建单实例应用程序包装器
- 添加VisualBasic.dll引用
- 新建类SingleInstanceAppWrapper继承自WindowsFormsApplicationBase
using Microsoft.VisualBasic.ApplicationServices;
namespace 项目9 {
class SingleInstanceAppWrapper :WindowsFormsApplicationBase{
public SingleInstanceAppWrapper()
{
this.IsSingleInstance = true;
}
private WpfApp app;
protected override bool OnStartup(StartupEventArgs eventArgs)
{
base.OnStartup(eventArgs);
app =new WpfApp();
app.Run();
return false;
}
protected override void OnStartupNextInstance(StartupNextInstanceEventArgs eventArgs)
{
base.OnStartupNextInstance(eventArgs);
app.ShowWindow();
}
}
}
3.在主程序调用
using System;
namespace 项目9 {
class StartUp {
[STAThread]
public static void Main(string[] args)
{
//WpfApp app=new WpfApp();
//app.Run();
SingleInstanceAppWrapper wrapper=new SingleInstanceAppWrapper();
wrapper.Run(args);
}
}
}
打开多个,但只有一个进程