找回密码
 加入
搜索
查看: 5434|回复: 18

[转贴] 只允许一个实例运行

[复制链接]
发表于 2019-2-2 11:06:56 | 显示全部楼层 |阅读模式
au3只允许一个实例运行,实现方法很多,但是下面这种方法可能就鲜有人知道了。
_instance("autoit.cn")
Func _instance($SEMAPHORE)
        Local $ERROR_ALREADY_EXISTS = 183
        DllCall("kernel32.dll", "int", "CreateSemaphore", "int", 0, "long", 1, "long", 1, "str", $SEMAPHORE)
        Local $LASTERROR = DllCall("kernel32.dll", "int", "GetLastError")
        If $LASTERROR[0] = $ERROR_ALREADY_EXISTS Then Exit
EndFunc   ;==>_instance

评分

参与人数 2金钱 +60 收起 理由
xyx115 + 20 很给力!
fybhwsx + 40 很给力!

查看全部评分

发表于 2019-2-3 13:05:29 | 显示全部楼层
多谢分享!谢谢
发表于 2019-2-3 15:38:11 | 显示全部楼层
试试,一直用_Singleton
发表于 2019-2-3 15:41:56 | 显示全部楼层
用这个方法有什么好处吗?
 楼主| 发表于 2019-2-3 18:40:59 | 显示全部楼层
fybhwsx 发表于 2019-2-3 15:41
用这个方法有什么好处吗?

防止程序重复运行的另一种方法。
发表于 2019-2-3 19:30:57 | 显示全部楼层
嗯嗯,试用正常!
发表于 2019-2-12 12:34:55 | 显示全部楼层
感谢大佬分享
发表于 2019-2-12 13:36:24 | 显示全部楼层
多谢分享!谢谢
发表于 2019-2-12 15:42:29 | 显示全部楼层
感谢分享,看看和绿大侠的有什么不同
发表于 2019-2-13 08:04:52 | 显示全部楼层
谢谢分享,又一种方法
收藏了
发表于 2019-2-13 21:52:15 | 显示全部楼层
错误: 语法错误 (非法字符)
发表于 2019-2-13 21:52:33 | 显示全部楼层
提示这个是什么意思?
错误: 语法错误 (非法字符)
发表于 2019-2-14 13:42:36 | 显示全部楼层
fybhwsx 发表于 2019-2-3 15:41
用这个方法有什么好处吗?

防止同一个程序被多次打开运行呀。。
发表于 2019-2-15 18:03:06 | 显示全部楼层
anythinging 发表于 2019-2-13 21:52
提示这个是什么意思?
错误: 语法错误 (非法字符)

我这也是这个错误。
发表于 2019-4-14 23:07:09 | 显示全部楼层
有没有办法实现这样的目的:
程序打开后最小化到托盘,第二次打开这个程序时,自动打开这个程序的窗口
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 04:18 , Processed in 0.089368 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表