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单实例应用程序相关推荐

  1. WPF学习笔记-单实例应用程序(包装器)

    1.添加引用Microsoft.VisualBasic 2.创建 app类 class App : System.Windows.Application{protected override void ...

  2. Delphi 10.4利用CreateMutex函数创建互斥对象实例防止程序中多次执行该对象

    windows是个多用户多任务的操作系统,支持多个程序同时运行,如果你的程序不想让用户同时运行一个以上, 那应该怎样做呢? 本文将介绍避免用户同时运行多个程序的例子. 需要用到的函数CreateMut ...

  3. 创建单实例WPF应用程序的正确方法是什么?

    在.NET(而不是Windows Forms或控制台)下使用C#和WPF,创建只能作为单个实例运行的应用程序的正确方法是什么? 我知道它与某种称为互斥量的神话事物有关,我很少能找到一个烦人的人来阻止并 ...

  4. jsp 构建单页应用_如何使用服务器端Blazor构建单页应用程序

    jsp 构建单页应用 介绍 (Introduction) In this article, we will create a Single Page Application (SPA) using s ...

  5. JavaFX官方教程(五)之在JavaFX中创建表单

    翻译自  在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...

  6. 【RAC】将单实例备份集恢复为rac数据库

    [RAC]将单实例备份集恢复为rac数据库 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  7. linux下程序如何实现单实例运行

    1.技术原理 无论是windows还是linux下,程序设计者都会遇到一个问题,那就是如何实现程序的单实例运行.比如,Windows自带的播放软件Windows Medea Player只能启动一个实 ...

  8. 【Web API系列教程】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(上)

    前言 在传统的web应用程序中,客户端(浏览器)通过请求页面来启动与服务器的通信.然后服务器处理该请求,并发送HTML页面到客户端.在随后页面上的操作中--例如,用户导航到一个链接或提交一个包含数据的 ...

  9. 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序

    如果你的程序对 Windows 运行权限有要求,那么需要设置应用程序清单.本文介绍如何添加应用程序清单,并解释其中各项权限设置的实际效果. 本文内容 嵌入带默认设置的清单 新建一个自定义的清单文件 创 ...

最新文章

  1. Tenda路由器设置
  2. 函数参数---动态参数
  3. altair feko+winprop 2020中文版
  4. Appium+Python3 并发启动测试设备
  5. mac 系统新功能体验-根据时间变化的动态桌面背景,看壁纸演绎风景大片中的日出与日落
  6. 水星mw310r虚拟服务器,水星MW310R静态网络(IP)设置教程
  7. 如何批量删除指定的GitHub Repos
  8. Java EE并发API教程
  9. 用python验证猜想之类的例子_python练手好例子:验证哥德巴赫猜想
  10. java中super关键字的用法
  11. [单选题]?php echo ceil(2.1/0.7); ?
  12. 《Unix网络编程卷1:套接字联网API》读书笔记
  13. 拓端tecdat|Matlab用BUGS马尔可夫区制转换Markov switching随机波动率SV模型、序列蒙特卡罗SMC、Metropolis Hastings采样分析时间序列数据
  14. 基于springboot的美食系统
  15. 阿里云IoT规则引擎SQL参考
  16. 【资料目录收藏】.NET开发必看资料53个 经典源码77个
  17. 音阶频率对照表_音符频率对应表
  18. qq邮箱对方服务器退回,为什么我用QQ邮箱发邮件被退回来了?他说地 – 手机爱问...
  19. html表格数据按公式自动计算,Word表格怎么自动填充和计算数据
  20. 网络编程中常用的fd是什么

热门文章

  1. opencv-api matchTemplate
  2. javascript Date对象
  3. golang | 使用goroutine和channel实现一个计算int64随机数各位数和的程序。
  4. UML学习总结(2)——StartUML 各种类图的例子
  5. git全局配置用户名和密码_git---全局设置用户名、密码、邮箱
  6. mysql_fetch_array 失败_mysql_fetch_array错误
  7. 推荐的Java项目_求点Java项目推荐?
  8. Pipeline As Code With Jenkins2.0
  9. 23种常用设计模式的UML类图
  10. MySQL常见的库操作,表操作,数据操作集锦及一些注意事项