创建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 运行权限有要求,那么需要设置应用程序清单.本文介绍如何添加应用程序清单,并解释其中各项权限设置的实际效果. 本文内容 嵌入带默认设置的清单 新建一个自定义的清单文件 创 ...
最新文章
- ubuntu下编译php扩展的时候报缺少pcre解决办法
- springboot之@ConfigurationProperties加载配置文件
- java开源的cms系统jsp cms系统
- SpringBoot中的Quartz应用
- laravel increment出现了翻倍递增_中国股市:如何判断“强庄股”的出现,看懂主力心甘情愿送钱上门...
- 软件测试面试选择判断提,软件测试面试常考判断题
- leetcode701. 二叉搜索树中的插入操作(dfs)
- html5中将doctype分为几种,html5与html 4.01的区别 doctype几种分类及其不同
- 【PetShop 4.0学习】1.技术特点
- python 实现的huffman 编码压缩,解码解压缩
- 计算机opnet仿真实验心得,SIMULINK仿真实验心得体会
- 字节岗位的薪酬体系曝光,看完感叹:真的不服不行
- 人工智能机器深度学习与大数据技术在足球比赛预测推荐分析上的深度挖掘和应用
- ajax请求存在不安全的问题有哪些?如何解决这些不安全的很问题
- python做地图导航_【Python】利用高德地图做你想做之事
- 百亿题典之C++编程题面试题
- 抖音运营技巧都有哪些?如何让爆粉?
- 【玩转ESP32】17、PWM调光
- 【cx_Oracle】记录一次 python cx_Oracle出现 ORA-00911: 无效字符
- springboot(原先是mybatis)整合mybatis-plus,注入报错Error creating bean with name 'sqlSessionFactory'
热门文章
- Bokeh 风格属性设置
- 怎么让照片变年轻_女生都想要变年轻,但是应该怎么做呐?其实有了背带裤就可以搞定...
- 信息安全完全参考手册之安全设计原则(第四章)
- java删除文件的上一级_java中多级目录的删除
- 敏捷开发系列学习总结(9)——10大流行编程方法
- 软件工程学习总结(1)——软件测试工具详解
- SSO单点登录学习总结(1)——单点登录(SSO)原理解析
- php 背单词系统_《PHP 编程词典(珍藏版)》
- mysql 列很多_MySQL:多个表还是一个表有很多列?
- mysql tinyint1isbit_MySQL tinyInt1isBit or tinyint(1) 相关问题解析