『WPF』单实例应用程序

本文最后更新于 2019年 4月 20号 14点 11分,并同步发布于 :


如果我们不希望用户打开两个应用程序实例, 可以通过下面的方式来实现此目的


首先, 删除 App.xaml 文件, 新建一个 App.cs 文件
完成之后项目的结构 :
『WPF』单实例应用程序

因为要在 App 类之前执行一些代码, 所以不能使用 App.xaml 文件

然后添加引用 Microsoft.VisualBasic

然后开始编写代码


需要的 using 指令组 :

由于 Microsoft.VisualBasic.ApplicationServicesSystem.Windows 这两个命名空间都定义了我们即将使用的 StartupEventArgs 类型, 所以分别对这两个命名空间设置一个别名

『WPF』单实例应用程序
首先编写 App 类, 并设置启动时的窗口
『WPF』单实例应用程序

然后创建一个继承自 WindowsFormsApplicationBase 的类

OnStartup() 方法中创建 App 类, 并调用 Run() 方法
OnStartupNextInstance() 方法中, **一个窗口, 提示用户, 程序已经在运行了

『WPF』单实例应用程序

最后手动编写 Main() 方法, 创建一个 SingleInstanceApp 对象并调用 Run() 方法

『WPF』单实例应用程序

—END—