本帖最后由 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 = 根据其它类型匹配不区分大小写的匹配.
|