您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

微软是如何解决 PC 端程序多开问题的

时间:2022-04-18 17:28:06  来源:  作者:My IO

前言

在公众号上看到一篇文章《C#中解决PC端程序多开的问题》。

该文作者是通过创建互斥锁Mutex实现的:

bool mutexCreated;
var mutex = new Mutex(true, "MyApp", out mutexCreated);
if (mutexCreated)
{
    Application.Run(new Form1());
}
else
{
    MessageBox.Show("该程序已打开");
}

其实,VB.NET 的 WinForm 程序提供了一个更简单的实现方式:

微软是如何解决 PC 端程序多开问题的

 

无需任何代码,只需打个勾

现在很少有人用 VB.NET 了,能不能迁移相同功能到 C# 中呢?

原理

编译一个 VB.NET 的 WinForm 程序,反编译源代码,找到入口MAIn方法:

微软是如何解决 PC 端程序多开问题的

 

该入口类MyApplication继承自
windowsFormsApplicationBase基类,实际执行的基类的Run方法。

而Run方法内部使用IsSingleInstance属性,判断是否启用单个实例应用程序

微软是如何解决 PC 端程序多开问题的

 

而IsSingleInstance属性是在入口类的构造函数中赋值的:

public MyApplication()
    : base(AuthenticationMode.Windows)
{
    base.IsSingleInstance = true;
    base.EnableVisualStyles = true;
    base.SaveMySettingsOnExit = true;
    base.ShutdownStyle = ShutdownMode.AfterMainFormCloses;
}

实现

知道了原理,我们就可以改造 C# 的实现:

class Program :  WindowsFormsApplicationBase
{
    public Program()
    {
        IsSingleInstance = true;
    }
    protected override void OnCreateMainForm()
    {
        MainForm = new Form1();
    } 
    [STAThread]
    static void Main(string[] args)
    {
        new Program().Run(args);
    }
}

需要引用 NuGet 包 Microsoft.VisualBasic

接下来,让我们来验证一下。

我们的程序确实只能打开一次,第 2 次运行会将已运行的窗口激活。

结论

今天,我们通过引用Microsoft.VisualBasic解决程序多开的问题!



Tags:程序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
全球首个AI程序员Devin造假?业内人士:质疑有理,但程序员已离不开AI
·号称全球首个AI人工智能软件师Devin日前被网络博主质疑造假、炒作。业内人士分析认为,该位博主质疑有理有据,Devin的“惊人效果”确实存在一些商业炒作的嫌疑。号称“...【详细内容】
2024-04-17  Search: 程序  点击:(2)  评论:(0)  加入收藏
雷军:10年编程路,给程序员的几点建议
随着小米SU7的火热发售,雷军凭借“跨界灭霸”称号又一战封神。作为中国互联网历史上极富传奇色彩的连续创业者,他向大家生动地诠释了“人生在于奋斗”的真谛。雷军作为中国第...【详细内容】
2024-04-15  Search: 程序  点击:(5)  评论:(0)  加入收藏
程序化交易迎来新规
【深圳商报讯】(记者 陈燕青)证监会近日就《证券市场程序化交易管理规定(试行)(征求意见稿)》,向社会公开征求意见。这意味着备受市场关注的程序化交易迎来新规。具体来看,一是明确...【详细内容】
2024-04-15  Search: 程序  点击:(2)  评论:(0)  加入收藏
首个AI程序员造假被抓,Devin再次“震撼”硅谷!扒皮视频文字详解附上
白交 衡宇 发自 凹非寺量子位 | 公众号 QbitAI首个AI程序员,演示视频大幅度造假???不久之前震撼硅谷的Devin,再度震撼硅谷——但这次是被打假。事情是这样的:油管程序员...【详细内容】
2024-04-14  Search: 程序  点击:(1)  评论:(0)  加入收藏
量化私募火线解读程序化交易新规!
围绕程序化交易的监管新规来了! 为加强证券市场程序化交易监管,促进程序化交易规范发展,维护证券交易秩序和市场公平,4月12日,中国证监会发布《证券市场程序化交易管理规定(试行)...【详细内容】
2024-04-13  Search: 程序  点击:(1)  评论:(0)  加入收藏
量化私募火线解读程序化交易新规!
围绕程序化交易的监管新规来了!为加强证券市场程序化交易监管,促进程序化交易规范发展,维护证券交易秩序和市场公平,4月12日,中国证监会发布《证券市场程序化交易管理规定(试行)...【详细内容】
2024-04-13  Search: 程序  点击:(6)  评论:(0)  加入收藏
ChatGPT 应用商店?可能是一个万能应用程序!
OpenAI 在去年 11 月召开了一次开发者大会,首席执行官 Sam Altman 希望软件制造商在 ChatGPT 之上进行进一步的构建。OpenAI 表示,它将很快推出一个市场,开发人员和非技术人员...【详细内容】
2024-04-12  Search: 程序  点击:(9)  评论:(0)  加入收藏
AI程序员上岗 垂类大模型应用迎来井喷期
能自动写代码的“AI员工”、逐渐告别不够好用的智能客服,无需费时费力开发的工业AI控制器……随着人工智能大模型能力开始深入多个行业,IT、工业生产、金融、服务...【详细内容】
2024-04-07  Search: 程序  点击:(5)  评论:(0)  加入收藏
首个AI程序员上岗,码农们暂且不必过度焦虑
“AI程序员上岗”或许是噱头,但淘汰焦虑仍然近在咫尺,需要积极面对。全文2418字,阅读约需7分钟 撰稿 / 马尔文(媒体人)编辑 / 何睿 校对 / 张彦君▲随着相关技术的突飞猛进,AI也在...【详细内容】
2024-04-07  Search: 程序  点击:(6)  评论:(0)  加入收藏
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  Search: 程序  点击:(19)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(6)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(7)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(10)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(4)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(6)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(10)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(21)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(19)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(19)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(42)  评论:(0)  加入收藏
站内最新
站内热门
站内头条