Delphi - 互斥对象下实现系统的单例模式
2024-09-01 09:09:24
使用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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
最新文章
- 实体生命周期【Entity Lifecycle】(EF基础系列10)
- 数据库表中存在Text类型的属性时,写sql语句时需要注意喽!
- Recovering deleted Records
- [译]Bundling and Minification
- HyperV上的Linux虚拟机启动报panic_early_exception错误
- Linux内核-链表
- 基于EasyUI实现windows桌面
- html使用空格对齐文本(&;nbsp;&;emsp;&;ensp;)
- python2.X和python3.X在同一平台下的切换技巧
- 从一句SQL得出的启示
- create-react-app中添加less支持
- Alpha冲刺四
- Jenkins控制台显示乱码
- 【windows核心编程】注入DLL时BUG排除与调试
- 【刷题】LOJ 6012 「网络流 24 题」分配问题
- HashMap分析 + 哈希表
- 学习grunt四解决yo webapp生成的是gulpfile而不是gruntfile问题
- lucene4 Filter
- 在ASP.NET应用程序中使用身份模拟(Impersonation)
- iOS之禁止所有输入法的表情