易语言禁止重复运行(源码)

.版本 2

.子程序 禁止重复运行, 逻辑型, 公开, 重复运行返回真;否则返回假,内部已加自动结束代码,外部无需再判断
.参数 标识, 文本型, , 建议适用长一些的任意字符串
.参数 句柄, 整数型, 可空, 用于显示已运行程序的窗口,句柄为空则不操作显示窗口
.局部变量 句柄, 整数型
.局部变量 安全结构, 安全结构
.局部变量 还原句柄, 整数型

句柄 = CreateMutex (安全结构, 真, 标识)
.如果真 (WaitForSingleObject (句柄, 100) = 258)
.如果真 (是否为空 (句柄) = 假)
还原句柄 = 取数值注册项 (#本地机器, 标识, )
ShowWindow (还原句柄, 5)

.如果真结束
ReleaseMutex (句柄)
CloseHandle (句柄)
结束 ()
返回 (真)
.如果真结束

.如果真 (是否为空 (句柄) = 假)
写注册项 (#本地机器, 标识, 句柄)
.如果真结束
返回 (假)

 

.版本 2

.DLL命令 CloseHandle, 整数型, “kernel32.dll”, “CloseHandle”
.参数 对象句柄, 整数型

.DLL命令 WaitForSingleObject, 整数型, “kernel32.dll”, “WaitForSingleObject”
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型

.DLL命令 CreateMutex, 整数型, “kernel32.dll”, “CreateMutexA”
.参数 互斥体结构, 安全结构
.参数 拥有互斥体, 逻辑型
.参数 互斥体对象的名字, 文本型

.DLL命令 ShowWindow, , , “ShowWindow”
.参数 句柄, 整数型, , Q
.参数 参数, 整数型, , 0隐藏,5显示,3最大化激活,2最小激活

.DLL命令 ReleaseMutex, 整数型, “kernel32.dll”, “ReleaseMutex”
.参数 hMutex, 整数型

重复运行源码

Leave a Comment

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |