使用CreateMutex函数创建互斥对象

利用Windows系统函数CreateMutex(),找出当前系统是否已经存在指定进程的实例,如果没有则创建一个互斥体。

CreateMutex函数原型如下:

function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle;

其中参数:

lpMutexAttributes :SECURITY_ATTRIBUTES 结构类型指针,可以为NULL。

bInitialOwner :是否初始化互斥体。

lpName :互斥体对象的名称,一般是工程的名称。

最终,函数返回一个互斥体句柄。

Delphi WinFrm利用互斥对象实现单例模式

单击Project,View Source;

uses 中添加Windows;

Begin和End之间添加如下代码。

  //*****************************单例模式********************************
CreateMutex(nil, False, 'Application Name');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Application.MessageBox('系统已经开启了,请确认下!', '提示', MB_OK);
Halt();
end;
//*****************************单例模式********************************

作者:Jeremy.Wu
  出处:https://www.cnblogs.com/jeremywucnblog/

  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

最新文章

  1. 实体生命周期【Entity Lifecycle】(EF基础系列10)
  2. 数据库表中存在Text类型的属性时,写sql语句时需要注意喽!
  3. Recovering deleted Records
  4. [译]Bundling and Minification
  5. HyperV上的Linux虚拟机启动报panic_early_exception错误
  6. Linux内核-链表
  7. 基于EasyUI实现windows桌面
  8. html使用空格对齐文本(   )
  9. python2.X和python3.X在同一平台下的切换技巧
  10. 从一句SQL得出的启示
  11. create-react-app中添加less支持
  12. Alpha冲刺四
  13. Jenkins控制台显示乱码
  14. 【windows核心编程】注入DLL时BUG排除与调试
  15. 【刷题】LOJ 6012 「网络流 24 题」分配问题
  16. HashMap分析 + 哈希表
  17. 学习grunt四解决yo webapp生成的是gulpfile而不是gruntfile问题
  18. lucene4 Filter
  19. 在ASP.NET应用程序中使用身份模拟(Impersonation)
  20. iOS之禁止所有输入法的表情

热门文章

  1. [POJ2559&POJ3494] Largest Rectangle in a Histogram&Largest Submatrix of All 1’s 「单调栈」
  2. burpsuit用法
  3. 《HelloGitHub》第 40 期
  4. Linux 下实践 VxLAN:虚拟机和 Docker 场景
  5. phpStudy 升级 MySQL 到 5.7.21
  6. c语言指针汇总
  7. Visual Studio Debug
  8. python开发基础--思维导图
  9. 统计学习方法—SVM推导
  10. spring架构解析--入门一