单实例 winform zz
2024-08-24 23:38:34
(引用了 Microsoft.VisualBasic.ApplicationServices)
SingleInstanceApplicationWrapper.cs
using System.Windows.Forms;
using Microsoft.VisualBasic.ApplicationServices; namespace Highflyer
{
/// <summary>
/// 单实例应用程序封装类
/// </summary>
public class SingleInstanceApplicationWrapper : WindowsFormsApplicationBase
{
private readonly Form mainForm; public SingleInstanceApplicationWrapper(Form form)
{
mainForm = form;
#if DEBUG
this.IsSingleInstance = false;
#endif
#if RELEASE
this.IsSingleInstance = true;
#endif
} protected override bool OnStartup(StartupEventArgs e)
{
Application.Run(mainForm);
return false;
} protected override void OnStartupNextInstance(StartupNextInstanceEventArgs e)
{
// 这里可以把本次使用的参数传给之前的实例,本人在一个WPF 屏幕键盘项目里传送了键盘显示方式(数字、英文、手写)参数
//e.BringToForeground = true;
//if (e.CommandLine.Count > 0)
//{
// app.DealArgs(e.CommandLine.ToArray());
//}
}
}
}
Program.cs
using System;
using System.Windows.Forms;
using Highflyer; namespace Eparcar.ParkLocal.GateBoxClient
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); MainForm mainForm = new MainForm();
SingleInstanceApplicationWrapper wrapper = new SingleInstanceApplicationWrapper(mainForm);
wrapper.Run(args);
}
}
}
最新文章
- C++知识回顾(一)
- linux(centos)用户与权限
- <;转>;好婚姻是彼此放心
- YY前端课程3
- 12,SFDC 管理员篇 - 页面配置
- C与CPP 在线手册查找
- adadmin: error while loading shared libraries: libclntsh.so.10.1
- Perl 随笔
- Selenium - IWebDriver.SwitchTo() frame 和 Window 的用法
- MVC用户登录方法(lamda表达式)
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2) good
- js前端分页之jQuery
- Android系统--输入系统(九)Reader线程_核心类及配置文件
- Linux sort -g 的困惑
- 【转载】CSS font关键字属性值的简单研究
- bzoj3685普通van Emde Boas树 线段树
- TCP浅谈为什么3次握手
- C语言--第五次作业--指针
- rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签
- C# 封装SDK 获取摄像头的水平角度和垂直角度