第一步
新建一个WPF应用程序,取名WPFSingleInstance
第二步
项目中添加引用:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\Microsoft.VisualBasic.dll
第三步:
在MainWindow中添加个一个Button,用来显示
第四步:
新建一个文件,并重新命名名称空间,并添加如下代码:
namespace MyAppStartup
{
public class Startup
{
[STAThread]
public static void Main(string[] args)
{
SingleInstanceApplicationWrapper wrapper = new SingleInstanceApplicationWrapper();
wrapper.Run(args);
}
}
public class SingleInstanceApplicationWrapper : WindowsFormsApplicationBase
{
private App app; // The actual WPF Application
private int Num=0;
public SingleInstanceApplicationWrapper()
{
this.IsSingleInstance = true;
}
// The first open
protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)
{
app = new App();
MainWindow win = new MainWindow();
win.Title = Num.ToString();
app.Run(win);
return false;
}
// The next open
protected override void OnStartupNextInstance(StartupNextInstanceEventArgs e)
{
Num += 1;
MainWindow win = new MainWindow();
win.Title = Num.ToString();
win.Show();
}
}
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}
}
第五步:
右键项目属性->Application->Startup Object下拉菜单选择MyAppStartup.Startup
第六步:
Build,然后生成exe文件,打开exe,会产生一个窗口,再双击exe文件,又产生一个窗口,但是你在任务管理器中查看,只有一个进程。