zoukankan      html  css  js  c++  java
  • Delphi

    使用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(0);
      end;
        //*****************************单例模式********************************

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

  • 相关阅读:
    赛孚耐(SafeNet)加密狗 C#调用代码
    转 RMAN-20033
    MyBatis <foreach>
    MySQL InnoDB锁问题
    MySQL MyISAM表锁
    MySQL锁概述
    MySQL 优化表数据类型
    MySQL 优化分页思路
    MySQL EXPLAIN
    MySQL 开启慢查询日志
  • 原文地址:https://www.cnblogs.com/jeremywucnblog/p/11450919.html
Copyright © 2011-2022 走看看