【已解决】关于防止程序重复运行遇到的一个小问题
本帖最后由 anythinging 于 2020-8-6 13:51 编辑各位老题,关于防止程序重复运行遇到的一个小问题
如果先运行1,再运行2,正常
如果先运行2,再运行1,就提示已经运行。
目前解决方法是减少$g_szVersion的长度。
不知这算不算Bug?
$g_szVersion = "testabc001"
If WinExists($g_szVersion) Then
MsgBox(262144,'','此脚本已经运行了',1)
Exit ; 此脚本已经运行了
EndIf
AutoItWinSetTitle($g_szVersion)
MsgBox(262144,'','此脚本正在运行中',0)
$g_szVersion = "testabc001test"
If WinExists($g_szVersion) Then
MsgBox(262144,'','此脚本已经运行了',1)
Exit ; 此脚本已经运行了
EndIf
AutoItWinSetTitle($g_szVersion)
MsgBox(262144,'','此脚本正在运行中',0)按照版主的解释解决
WinTitleMatchMode
修改窗口函数执行搜索时的标题匹配模式.
1 = (默认值)匹配标题的开始部分
2 = 匹配标题的任意子串
3 = 完全匹配标题
4 = 高级的模式 (仅为保留向后兼容 - 参考 窗口标题与文本 (高级))
-1 到 -4 = 根据其它类型匹配不区分大小写的匹配.
不是BUG。
内置 Win* 函数标题参数默认是匹配标题的开始部分。testabc001 对于 testabc001test 而言是匹配的。
添加以下代码,修改默认属性为完整匹配即可
Opt('WinTitleMatchMode', 3) #include <Misc.au3>
_Singleton("testabc001") 绝对不是BUG, 你仔细看一下WinExists的帮助第一个参数。。。。参考二楼A大的。
页:
[1]