C#/WPF 只允许一个实例程序运行并将已运行程序置顶
使用用互斥量(System.Threading.Mutex):
同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就职运行一个实例。
实例代码:
/// <summary>/// App.xaml 的交互逻辑/// </summary>public partial class App : Application{[DllImport("user32.dll ")]//设置窗体置顶private static extern bool SetForegroundWindow(IntPtr hWnd);[DllImport("User32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);private static Mutex _m = null;private static string currentProcess = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;/// <summary>/// 只允许运行一个实例/// </summary>/// <param name="mutexName"></param>/// <returns>true:已经存在实例 false:不存在实例</returns>public static bool CheckRunOneInstance(string mutexName = null){bool result = false;bool mutexWasCreated = false;try{bool requestInitialOwnership = true;if (mutexName == null)mutexName = currentProcess;_m = new Mutex(requestInitialOwnership, mutexName, out mutexWasCreated);if (!mutexWasCreated){result = true;}}catch (Exception ex){MessageBox.Show(ex.Message);}return result;}/// <summary>/// 有程序运行,设置焦点/// </summary>private void Focus(){foreach (Process process in Process.GetProcesses()){try{if (process.ProcessName.ToLower() != currentProcess.ToLower())continue;IntPtr hwnd = process.MainWindowHandle;if (hwnd != IntPtr.Zero){SetForegroundWindow(hwnd);ShowWindow(hwnd, 2);}}catch (Exception ex){MessageBox.Show(ex.Message);}}}private void Application_Startup(object sender, StartupEventArgs e){if(CheckRunOneInstance()){Focus();System.Windows.Application.Current.Shutdown();return;}else{new MainWindow().Show();}}}
实例链接:
https://download.csdn.net/download/lvxingzhe3/88668552
相关文章:
C#/WPF 只允许一个实例程序运行并将已运行程序置顶
使用用互斥量(System.Threading.Mutex): 同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就职运行一个实例。 实例代码: /// <…...
【基础】【Python网络爬虫】【1.认识爬虫】什么是爬虫,爬虫分类,爬虫可以做什么
Python网络爬虫基础 认识爬虫1.什么是爬虫2.爬虫可以做什么3.为什么用 Ptyhon 爬虫4.爬虫的分类通用爬虫聚焦爬虫功能爬虫增量式爬虫分布式爬虫 5.爬虫的矛与盾(重点)6.盗亦有道的君子协议robots7.爬虫合法性探究 认识爬虫 1.什么是爬虫 网络爬虫&…...
【算法与数据结构】860、LeetCode柠檬水找零
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题的思路比较简单,首先要保存收到的零钱,其次计算找零,最后分解找…...
「Verilog学习笔记」乘法与位运算
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 观察乘数的特点: 1111_1011 1_0000_0000 - 1 - 100 timescale 1ns/1nsmodule dajiang13(input [7:0] A,output [15:0] B);//*************code*********…...
CSS与JavaScript的简单认识
CSS:是一门语言,用于控制网页表现,让页面更好看的。 CSS(Cascading Style Sheet):层叠样式表 CSS与html结合的三种方式: 1、内部样式:用style标签,在标签内部定义CSS样式…...
MAC 中多显示器的设置(Parallels Desktop)
目录 一、硬件列表: 二、线路连接: 三、软件设置: 1. 设置显示器排列位置及显示参数 2. 分别设置外接显示器为:扩展显示器,内建显示器为主显示器 3. 设置Parallels Desktop屏幕参数 四、结果 一、硬件列表&a…...
迁移到云原生:如何使用微服务迁移应用程序
企业遇到大规模部署和监督生产中的应用程序的任务。幸运的是,我们可以使用大量技术和工具。然而,从传统的,整体的结构转变为云态一个人提出了自己的障碍。在这里,您会发现将应用程序从整体设置转移到基于微服务的体系结构时要进行…...
kafka 的零拷贝原理
文章目录 kafka 的零拷贝原理 今天来跟大家聊聊kafka的零拷贝原理是什么? kafka 的零拷贝原理 零拷贝是一种减少数据拷贝的机制,能够有效提升数据的效率; 在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上…...
华为云Stack 8.X流量模型分析(五)
六、EIP流量模型分析 弹性公网IP(Elastic IP,简称EIP)提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。如果资源只配置了私网IP,则无法直接访问Internet,为资源配置弹性公网IP后,可…...
学习动态规划解决不同路径、最小路径和、打家劫舍、打家劫舍iii
学习动态规划|不同路径、最小路径和、打家劫舍、打家劫舍iii 62 不同路径 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量dp[i][j] dp[i-1][j] dp[i][j-1] import java.util.Arrays;/*** 路径数量* 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量…...
nodejs微信小程序+python+PHP特困救助供养信息管理系统-计算机毕业设计推荐
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
Vue(二):计算属性与 watch 监听器
03. Vue 指令拓展 3.1 指令修饰符 可以通过 . 来指明一些指令的后缀,不同的后缀中封装了不同的操作,可以帮助我们简化代码,比如之前使用过的监听 enter 键的弹起,我们需要操作事件对象,来检测用户使用了哪个键&#…...
25、WEB攻防——通用漏洞SQL读写注入MYSQLMSSQLPostgreSQL
文章目录 Mysql-root高权限读写注入PostgreSQL——dba高权限读写注入Mssql-sa高权限读写注入 Access无高权限注入点——只能猜解,而且是暴力猜解; MYSQL,PostgreSQL,MSSQL(SQL server)高权限注入点——可升级读写(文件…...
【第5期】前端Vue使用Proxy+Vuex(store、mutations、actions)跨域调通本地后端接口
本期简介 本期要点 本地开发前后端如何跨域调用全局请求、响应处理拦截器处理封装HTTP请求模块编写API请求映射到后端API数据的状态管理 一、 本地开发前后端如何跨域调用 众所周知,只要前端和后端的域名或端口不一样,就存在跨域访问,例如&…...
在Visual Studio(VS)编译器中,Release和Debug区别
一、 优化级别 1、Debug(调试) 在Debug模式下,编译器不会对代码进行优化,而是专注于生成易于调试的代码。这使得开发者可以在调试过程中更直观地跟踪变量的值和程序的执行流程。 2、Release(发布) 在Relea…...
子网划分问题(实战超详解)_主机分配地址
文章目录: 子网划分的核心思想 第一步,考虑借几位作为子网号 第二步,确定子网的网络地址 第三步,明确网络地址,广播地址,可用IP地址范围 一些可能出现的疑问 实战 题目一 子网划分的核心思想 网络号不变,借用主机号来产生新的网络 划分前的网络:网络号主机号 划分后的网络:原网…...
【QT】单例模式,Q_GLOBAL_STATIC 宏的使用和使用静态成员函数,eg:{简单的日志记录器}
简单的日志记录器为例 。 创建一个Logger类,该类负责记录应用程序的日志消息 使用 Q_GLOBAL_STATIC 宏 解析:Q_GLOBAL_STATIC 是一个 Qt 宏,用于创建全局静态实例。它确保在需要时只创建一次实例,而不管该实例是在哪个线程中创建…...
利用小红书笔记详情API:构建高效的内容创作与运营体系
随着社交媒体的兴起,小红书作为国内知名的内容分享平台,吸引了大量用户和内容创作者。为了更好地获取小红书上的优质内容,许多企业和开发者选择使用小红书笔记详情API。本文将探讨如何利用该API构建高效的内容创作与运营体系。 一、小红书笔记…...
【K8S 二进制部署】部署单Master Kurbernetes集群
目录 一、基本架构和系统初始化 1、集群架构: 2、操作系统初始化配置: 2.1、关闭防火墙和安全机制: 2.2、关闭swap 2.3、根据规划设置主机名 2.4、三台主机全部互相映射 2.5、调整内核参数 3、时间同步(所有节点时间必须同…...
vue中常见的指令
简单介绍一下常见的vue中用到的指令 v-on 指定当前的事件,语法糖为,如例子所示,指定按钮的事件为addCounter,点击会使变量counter 1 <!DOCTYPE html> <html><head><meta charset"utf-8" />…...
别再只调参了!深入RepVgg设计思想,用CCFF模块优化你的模型特征融合效率
深入解析CCFF模块:用RepVgg思想重构跨尺度特征融合技术 在计算机视觉领域,特征融合一直是提升模型性能的关键环节。传统方法如FPN、PANet虽然有效,但在实时性要求高的场景下往往成为计算瓶颈。今天我们要探讨的CCFF(Cross-scale C…...
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧)
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧) 作为Linux系统管理员,你是否遇到过TigerVNC卸载后仍然出现端口占用或配置冲突的情况?常规的apt remove往往无法彻底清除所有痕迹。本文将揭示那些鲜为人知的清理技…...
飞行器设计避坑指南:盘点那些影响气动效率的‘隐形杀手’(从摩擦阻力到干扰阻力)
飞行器设计避坑指南:盘点那些影响气动效率的‘隐形杀手’ 记得第一次参加大学生飞行器设计竞赛时,我们的团队花了整整三个月打造了一架翼展两米的固定翼无人机。试飞当天,看着它摇摇晃晃地起飞,却在爬升阶段突然失速坠毁ÿ…...
Python开发环境搭建新选择:Miniconda-Python3.11镜像体验
Python开发环境搭建新选择:Miniconda-Python3.11镜像体验 1. 为什么选择Miniconda-Python3.11镜像 Python作为当今最流行的编程语言之一,其版本管理和环境隔离一直是开发者面临的挑战。传统的Python安装方式往往会导致: 系统Python版本与项…...
Python零基础到入门-数据类型的内置方法(1)
当我们在操作 字符串/列表,要想到对字符串或者列表做一些高级的操作字符串 判断这个字符是否以 某个字符开头列表 添加元素 删除元素 修改元素 。。。官方根据上边的功能,给我们提供了一些公共的接口(方法)【一】整数类型语法&…...
开源压枪系统:基于像素识别技术的后坐力补偿解决方案
开源压枪系统:基于像素识别技术的后坐力补偿解决方案 【免费下载链接】Apex-NoRecoil-2021 Scripts to reduce recoil for Apex Legends. (auto weapon detection, support multiple resolutions) 项目地址: https://gitcode.com/gh_mirrors/ap/Apex-NoRecoil-202…...
从VCHA移除到成功升级:VMware VCSA6.5到6.7的完整实战记录
从VCHA移除到成功升级:VMware VCSA6.5到6.7的完整实战记录 在虚拟化运维领域,VMware vCenter Server Appliance(VCSA)的升级一直是技术团队面临的常规挑战。当环境配置了vCenter High Availability(VCHA)时…...
精准获取与高效转换:基于burst2safe的哨兵SLC burst数据轻量化处理实践
1. 哨兵SLC burst数据处理的必要性 处理卫星遥感数据时,我们常常面临一个两难选择:要么下载整景数据占用大量存储空间,要么难以精准获取研究区域的小范围数据。以Sentinel-1卫星为例,单景解压后的SLC数据可达7GB,而实际…...
OSMnx实战:从OpenStreetMap到GeoPackage,高效构建城市路网分析数据库
1. 为什么选择OSMnx和GeoPackage处理城市路网数据 第一次接触城市路网分析时,我被各种数据格式搞得头大。直到发现OSMnx这个神器,配合GeoPackage格式,工作效率直接翻倍。OSMnx是Python生态中专门处理OpenStreetMap数据的工具包,它…...
Mellanox ZTR技术解析:如何通过RTTCC实现零配置高性能RoCE网络
1. 什么是Mellanox ZTR技术? 第一次听说Mellanox ZTR(Zero Touch RoCE)技术时,我的反应和大多数人一样:"这又是什么高大上的黑科技?"但当我真正在金融交易系统里部署它之后,才发现这可…...
