wpf只运行一个实例
来源:互联网 发布:linux ntp remote = 编辑:程序博客网 时间:2024/05/18 03:34
在winform下,只运行一个实例只需这样就可以:
1. 首先要添加如下的namespace:
using System.Threading;
2. 修改系统Main函数,大致如下:
bool bCreatedNew;
//Create a new mutex using specific mutex name
Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew );
if( bCreatedNew )
Application.Run(new yourFormName());
在wpf中如何做呢?
我在微软论坛发帖之后,有高手提出了如下的解决办法,我试验之后,此法可行,就贴出来和大家分享。有人还有其他解决办法,可以写出来一起探讨:
首先 引用Microsoft.VisualBasic然后新建一个类 single public class single:Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase { App a; public single() { this.IsSingleInstance = true; } protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs) { a = new App(); a.InitializeComponent(); a.Run(); return false; } protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs) { base.OnStartupNextInstance(eventArgs); a.activate(); } }app.cs public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); Window1 w = new Window1(); w.Show(); } public void activate() { MainWindow.Activate(); } private void Application_SessionEnding(object sender, SessionEndingCancelEventArgs e) { } private void Application_Startup(object sender, StartupEventArgs e) { } private void Application_Exit(object sender, ExitEventArgs e) { } }app.g.cs [System.STAThreadAttribute()] [System.Diagnostics.DebuggerNonUserCodeAttribute()] public static void Main(string [] a ) { single s = new single(); s.Run(a); }刚开始运行的时候,虽然实现了再次点击不会有新实例,但是却每次都实例了两个窗口的情况。去掉 app.xaml中StartupUri属性就OK了。
0 0
- wpf只运行一个实例
- wpf只运行一个实例
- wpf只运行一个实例
- WPF 只允许运行一个实例(简单代码)
- 只运行一个实例
- 只运行一个实例
- 只运行一个实例
- c#:只运行一个实例
- 只运行一个程序实例
- 只运行一个实例程序
- 只允许运行一个实例
- 程序只运行一个实例
- 只允许运行一个实例
- 只运行一个程序实例
- 程序只运行一个实例
- Delphi 只运行一个实例
- C#只运行一个实例
- 进程只运行一个实例
- JS事件(Event)兼容性探究
- 《思考OO》
- 开源小游戏-基于android sample snake
- php读取mysql简单示例代码
- 【Android 应用开发】Android - 时间 日期相关组件
- wpf只运行一个实例
- 一个魔方,在转动了四次之后,一个面最多可能出现多少种颜色,为什么?
- 如何用openssl命令行生成证书
- 获取每个月第一个星期日的日期
- mvc:view-controller
- Java的Web框架 Firefly Framework
- 用数据线连接手机,使用java程序控制手机发短信,打电话
- 开源项目几点心得,Java架构必会几大技术点
- jquery sortable的拖动方法讲解