找回密码
 加入
搜索
查看: 1486|回复: 4

[AU3基础] 【已解决】关于防止程序重复运行遇到的一个小问题

[复制链接]
发表于 2020-8-5 15:28:53 | 显示全部楼层 |阅读模式
本帖最后由 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 = 根据其它类型匹配不区分大小写的匹配.

发表于 2020-8-5 15:49:22 | 显示全部楼层
不是BUG。
内置 Win* 函数标题参数默认是匹配标题的开始部分。testabc001 对于 testabc001test 而言是匹配的。
添加以下代码,修改默认属性为完整匹配即可
Opt('WinTitleMatchMode', 3)

点评

感谢指点,您说的太对了!  发表于 2020-8-6 13:50

评分

参与人数 1金钱 +30 收起 理由
anythinging + 30

查看全部评分

发表于 2020-8-5 21:11:35 | 显示全部楼层
#include <Misc.au3>
_Singleton("testabc001")
发表于 2020-8-6 08:29:33 | 显示全部楼层
绝对不是BUG, 你仔细看一下WinExists的帮助第一个参数。。。。参考二楼A大的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 08:46 , Processed in 0.073900 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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