lpxx 发表于 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 = $ERROR_ALREADY_EXISTS Then Exit
EndFunc   ;==>_instance


yuantian 发表于 2019-2-3 13:05:29

多谢分享!谢谢

fybhwsx 发表于 2019-2-3 15:38:11

试试,一直用_Singleton

fybhwsx 发表于 2019-2-3 15:41:56

用这个方法有什么好处吗?

lpxx 发表于 2019-2-3 18:40:59

fybhwsx 发表于 2019-2-3 15:41
用这个方法有什么好处吗?

防止程序重复运行的另一种方法。

fybhwsx 发表于 2019-2-3 19:30:57

嗯嗯,试用正常!

顽固不化 发表于 2019-2-12 12:34:55

感谢大佬分享

zhao_ming 发表于 2019-2-12 13:36:24

多谢分享!谢谢

zhao_ming 发表于 2019-2-12 15:42:29

感谢分享,看看和绿大侠的有什么不同

hnfeng 发表于 2019-2-13 08:04:52

谢谢分享,又一种方法
收藏了

anythinging 发表于 2019-2-13 21:52:15

错误: 语法错误 (非法字符)

anythinging 发表于 2019-2-13 21:52:33

提示这个是什么意思?
错误: 语法错误 (非法字符)

ttmv2019sx 发表于 2019-2-14 13:42:36

fybhwsx 发表于 2019-2-3 15:41
用这个方法有什么好处吗?

防止同一个程序被多次打开运行呀。。

ttmv2019sx 发表于 2019-2-15 18:03:06

anythinging 发表于 2019-2-13 21:52
提示这个是什么意思?
错误: 语法错误 (非法字符)

我这也是这个错误。

sh1536 发表于 2019-4-14 23:07:09

有没有办法实现这样的目的:
程序打开后最小化到托盘,第二次打开这个程序时,自动打开这个程序的窗口
页: [1] 2
查看完整版本: 只允许一个实例运行