创建WPF单实例应用程序
1.自定义SingletonWindow类(此方法也适合于传统winform程序)
using System;
using System.Linq;
namespace NetWorld
{
public class SingletonWindow
{
public static System.Diagnostics.Process Process() //如果不适用附加属性也可以直接使用此函数
{
//判断单实例的方式有很多,如mutex,process,文件锁等,这里用的是process方式
var process = GetRunningInstance();
if (process != null)
{
HandleRunningInstance(process);
Environment.Exit(0);
}
return process;
}
[System.Runtime.InteropServices.DllImport("User32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
static System.Diagnostics.Process GetRunningInstance()
{
var current = System.Diagnostics.Process.GetCurrentProcess();
var processes = System.Diagnostics.Process.GetProcessesByName(current.ProcessName);
foreach (var process in processes)
{
if (process.Id != current.Id)
if (System.Reflection.Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)
return process;
}
return null;
}
static void HandleRunningInstance(System.Diagnostics.Process instance)
{
if (instance.MainWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(instance.MainWindowHandle);
}
}
}
}
2.
转载于:https://www.cnblogs.com/wxjing67/archive/2012/07/30/2614656.html
创建WPF单实例应用程序相关推荐
- WPF学习笔记-单实例应用程序(包装器)
1.添加引用Microsoft.VisualBasic 2.创建 app类 class App : System.Windows.Application{protected override void ...
- Delphi 10.4利用CreateMutex函数创建互斥对象实例防止程序中多次执行该对象
windows是个多用户多任务的操作系统,支持多个程序同时运行,如果你的程序不想让用户同时运行一个以上, 那应该怎样做呢? 本文将介绍避免用户同时运行多个程序的例子. 需要用到的函数CreateMut ...
- 创建单实例WPF应用程序的正确方法是什么?
在.NET(而不是Windows Forms或控制台)下使用C#和WPF,创建只能作为单个实例运行的应用程序的正确方法是什么? 我知道它与某种称为互斥量的神话事物有关,我很少能找到一个烦人的人来阻止并 ...
- jsp 构建单页应用_如何使用服务器端Blazor构建单页应用程序
jsp 构建单页应用 介绍 (Introduction) In this article, we will create a Single Page Application (SPA) using s ...
- JavaFX官方教程(五)之在JavaFX中创建表单
翻译自 在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...
- 【RAC】将单实例备份集恢复为rac数据库
[RAC]将单实例备份集恢复为rac数据库 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...
- linux下程序如何实现单实例运行
1.技术原理 无论是windows还是linux下,程序设计者都会遇到一个问题,那就是如何实现程序的单实例运行.比如,Windows自带的播放软件Windows Medea Player只能启动一个实 ...
- 【Web API系列教程】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(上)
前言 在传统的web应用程序中,客户端(浏览器)通过请求页面来启动与服务器的通信.然后服务器处理该请求,并发送HTML页面到客户端.在随后页面上的操作中--例如,用户导航到一个链接或提交一个包含数据的 ...
- 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序
如果你的程序对 Windows 运行权限有要求,那么需要设置应用程序清单.本文介绍如何添加应用程序清单,并解释其中各项权限设置的实际效果. 本文内容 嵌入带默认设置的清单 新建一个自定义的清单文件 创 ...
最新文章
- Tenda路由器设置
- 函数参数---动态参数
- altair feko+winprop 2020中文版
- Appium+Python3 并发启动测试设备
- mac 系统新功能体验-根据时间变化的动态桌面背景,看壁纸演绎风景大片中的日出与日落
- 水星mw310r虚拟服务器,水星MW310R静态网络(IP)设置教程
- 如何批量删除指定的GitHub Repos
- Java EE并发API教程
- 用python验证猜想之类的例子_python练手好例子:验证哥德巴赫猜想
- java中super关键字的用法
- [单选题]?php echo ceil(2.1/0.7); ?
- 《Unix网络编程卷1:套接字联网API》读书笔记
- 拓端tecdat|Matlab用BUGS马尔可夫区制转换Markov switching随机波动率SV模型、序列蒙特卡罗SMC、Metropolis Hastings采样分析时间序列数据
- 基于springboot的美食系统
- 阿里云IoT规则引擎SQL参考
- 【资料目录收藏】.NET开发必看资料53个 经典源码77个
- 音阶频率对照表_音符频率对应表
- qq邮箱对方服务器退回,为什么我用QQ邮箱发邮件被退回来了?他说地 – 手机爱问...
- html表格数据按公式自动计算,Word表格怎么自动填充和计算数据
- 网络编程中常用的fd是什么
热门文章
- opencv-api matchTemplate
- javascript Date对象
- golang | 使用goroutine和channel实现一个计算int64随机数各位数和的程序。
- UML学习总结(2)——StartUML 各种类图的例子
- git全局配置用户名和密码_git---全局设置用户名、密码、邮箱
- mysql_fetch_array 失败_mysql_fetch_array错误
- 推荐的Java项目_求点Java项目推荐?
- Pipeline As Code With Jenkins2.0
- 23种常用设计模式的UML类图
- MySQL常见的库操作,表操作,数据操作集锦及一些注意事项