WIN32 互斥体 MUTEX 可以跨进程获取,因此可以用它实现简易的防多开,进程启动时尝试获取 MUTEX,如果获取失败说明没有多开,如果获取成功,则提示错误信息。

下面是执行结果:
第一个程序已经在运行:

如果尝试多开,则会弹出错误信息,并退出进程

代码

// MutexLimitMultiOpen2.cpp : Defines the entry point for the application.
//#include "stdafx.h"BOOL CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch(uMsg){case WM_CLOSE:{EndDialog(hDlg, 0);return TRUE;}}return FALSE;
}int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{HANDLE hMutex;// 尝试获取hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, "MYMUTEXTAG");if (NULL == hMutex){// 如果没有,说明咱是第一个,那就创建一个MUTEXhMutex = CreateMutex(0, FALSE, "MYMUTEXTAG");}else{// 如果有,说明已经有了,不准多开MessageBox(0, "请不要多开", "Error", MB_OK);return -1;}DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DlgProc);ReleaseMutex(hMutex);return 0;
}

WIN32 使用 MUTEX 实现禁止多开相关推荐

  1. 远程服务器用户多开,服务器安全之修改远程桌面限制同一用户使用同一个会话。一个用户只开一个会话禁止多开。...

    最近远程主机重装系统后,使用远程桌面出现一个问题:同一个用户先后登录远程系统,系统分配了不同会话.当系统分配不同会话时,导致你在一个远程桌面的操作都不见了.像是你运行的一些程序,虽然他们没有被系统关闭 ...

  2. 将 Win32 程序移植到 Linux

          对于这个问题,网上已经有很多资料给予了介绍,但是相比于这些信息,本文立足于个人的实践,将内容具体到开发环境和源代码,我觉得还是有很多值得总结和借鉴的.         首先声明开发环境.W ...

  3. 20170409 关于微信电脑版多开

    一开始的大学创业到现在毕业,合伙创立的公司也有一定的规模了,然而以前的生活方式和工作紧密相连,再到后来为了避免朋友圈暴露自己本性甚至各种各样的人际关系的处理方面,不得不开了买了第二个手机号码,然后开通 ...

  4. CreateMutex防多开

    ps 以下代码均在win10 X64下实现,其他系统不兼容 反调试 #include <windows.h> # include<stdio.h> int main(int a ...

  5. Unity开发-网络.算法.平台相关知识!

    A. 网络相关知识 一.TCP 1.面向数据流.可靠.能保证消息到达顺序. 2.滑动窗口.控制发送量,发送方只能发送窗口内大小的数据包.防止发送方发送的数据过多,接收方无法处理的情况. 3.Nagle ...

  6. 某程序员为方便老婆工作,写了一些小工具给老婆用!如今老婆要离职,公司老板却要求必须把工具留下!网友:跟他收费!...

    请点击上面 一键关注! 最近一个程序员发帖说了这么一件有意思的事: 老婆是一个小公司的hr兼行政,工作繁琐,为了支持老婆工作,这个程序员就写了一些小工具给老婆用,包括工牌生成器.日报格式化工具.年会抽 ...

  7. Spring项目-在线五子棋

    文章目录 网页版在线五子棋 1. 项目介绍 2. 项目演示 3. 前置知识 3.1 WebSocket 3.2 代码示例 3.2.1 服务器代码 3.2.2 客户端代码 4. 需求分析和概要设计 4. ...

  8. 五子棋PVP项目总结

    五子棋PVP 项目链接:链接 (id:zhangsan key:123) (id:lisi key:123) 项目背景 实现一个网页版五子棋对战程序. 支持以下核心功能: 用户模块: 用户注册, 用户 ...

  9. 网页版五子棋实时对战系统

    目录 主要功能介绍 项目创建 认识WebSocket 原理解析 WebSocket报文格式 引入pom.xml依赖 数据库设计 配置 MyBatis 用户模块 服务器开发 客户端开发 登录界面的设计 ...

最新文章

  1. 设计模式----组合模式UML和实现代码
  2. 如果不知道做什么,那应该做什么呢?
  3. PowerBI随笔(7)-lookupvalue、divide
  4. 获取cookie,删除cookie,添加cookie
  5. 简单的解释,让你秒懂“最优化” 问题
  6. 新华智云基于MaxCompute建设媒体大数据开放平台
  7. 常用生活必备在线网页软件
  8. 华为千亿美金年报里的5G、AI、云计算
  9. 如何区分网线是几类的_5类、6类网线双绞线如何区分又怎么样使用?
  10. 【古曲】流水-古琴曲
  11. 使用esp8266前的网络基础
  12. AR/VR软件与硬件技术
  13. b、B、kb、kB单位
  14. Android IBinder机制简单介绍
  15. 一名计算机程序员翻译,说计算机之翻译程序
  16. ansys,单元体转换以及如何查看当前单元体的类型,一些指令讲解。
  17. maven聚合工程报错:Could not find artifact com.*.*:*-*-*goods:pom:1.0.0-SNAPSHOT in dev
  18. excel文件导入sql server数据库
  19. 上班工资低,想换行业,这5个冷门职业不错,竞争小,有前途
  20. matlab做偏最小二乘回归(PLS带精度验证)

热门文章

  1. 本质矩阵svd分解_SVD推荐系统
  2. node.js require 自动执行脚本 并生成html,利用node.js实现自动生成前端项目组件的方法详解...
  3. 成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
  4. 成功解决 OSError: [WinError 193] %1 不是有效的 Win32 应用程序
  5. 成功解决object_detection/protos/*.proto: No such file or directory
  6. 成功解决AttributeError: Unknown property axisbg
  7. 成功解决打包时不能import自定义的包或库出现运行exe时No module named 缺少包
  8. Matlab:Matlab中常用的函数、案例详细攻略
  9. Pandas常用I/O(一)------read_csv(),read_table()
  10. 蓝桥杯_算法训练_ALGO10_集合运算