找回密码
 加入
搜索
楼主: ransally

[AU3基础] 简单程序已修正,问题原因看回复【已解决】谢谢大家!

 火... [复制链接]
 楼主| 发表于 2010-7-9 16:47:48 | 显示全部楼层
回复 14# lchl0588


    不是这个原因,你的代码失败了
 楼主| 发表于 2010-7-9 16:48:36 | 显示全部楼层
回复 13# afan


    多线程我不懂.........只知道C++多线程,这个还不知道,很难??
发表于 2010-7-9 16:59:10 | 显示全部楼层
回复 16# ransally

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-7-9 17:03:58 | 显示全部楼层
为何要WinWait呢?读@error不就可以判断吗?
ShellExecute("C:\Program Files\aa")
If @error Then
        Send("{enter}")
        MsgBox(48,"","文件不存在")
Else
        MsgBox(48,"","文件存在")
EndIf
 楼主| 发表于 2010-7-9 17:06:38 | 显示全部楼层
回复 18# lchl0588


    我试了好多遍,在我这失败,唉,我们公司的机子还传不了图......
 楼主| 发表于 2010-7-9 17:08:14 | 显示全部楼层
回复 19# 3mile


    提示窗口要手动关,才可以看到“文件不存在”窗口
发表于 2010-7-9 17:09:49 | 显示全部楼层
本帖最后由 lchl0588 于 2010-7-9 17:26 编辑

回复 19# 3mile
汗,还是P版说的对,窗口与脚本运行时间不一致导致!!!
我们聊来聊去,不如直接看下帮助中的:WinExists函数的实例!!!

回复 23# ransally

点之参见这里

回复  lchl0588


    汗....你的那个程序,我运行了五遍不止,真的不能成功的关掉那个提示窗口
ransally 发表于 2010-7-9 17:23
ShellExecute("d:\aa")
WinWaitActive("aa")
If  WinExists("aa") Then
        Send("{enter}")
   MsgBox(48,"1","文件不存在",5)
                Else
        MsgBox(48,"2","文件存在",5)
        EndIf
这样呢?
 楼主| 发表于 2010-7-9 17:14:48 | 显示全部楼层
回复 22# lchl0588


    我加入延迟Sleep()也是不行,主要是那个提示窗口关不掉,如果你成功了,
   
  源码给我看下,谢啦
 楼主| 发表于 2010-7-9 17:23:07 | 显示全部楼层
回复 22# lchl0588


    汗....你的那个程序,我运行了五遍不止,真的不能成功的关掉那个提示窗口
发表于 2010-7-9 17:23:18 | 显示全部楼层
如果只是纠结这个问题的话。
AFAN的代码完全可以满足你的要求。
发表于 2010-7-9 17:26:56 | 显示全部楼层
跳出消息框后,程序就暂停了,也就不会继续执行后面的 Send()... , 除非用多线程或多进程监视这个可能弹出的窗口,再做处理
 楼主| 发表于 2010-7-9 17:30:00 | 显示全部楼层
回复 25# 3mile


    就是想知道用原来的方法,怎么就不成了?比较纠结这个,嘿嘿
 楼主| 发表于 2010-7-9 17:31:34 | 显示全部楼层
回复 26# afan


    对,是的,提示窗口出来后,脚本是停止的,我加个执行脚本也是不行
   
  看来要看下多线程是怎么回事了。
发表于 2010-7-9 17:40:15 | 显示全部楼层
本帖最后由 lchl0588 于 2010-7-9 17:47 编辑
$dir = "C:\Program Files\aa"

If FileExists($dir) Then

        ShellExecute($dir)

Else

        MsgBox(48, '错误', '指定文件夹:"' & $dir & '"不存在')

EndIf
和这段代码  运行结果有什么不同?
这是我在LZ的基础上改的!!
ShellExecute("C:\Program Files\aa")
WinWaitActive("aa")
If  WinExists("aa") Then
        Send("{enter}")
                Else
        MsgBox(48,"2","文件存在",2)
        EndIf
要说结果相同,真不知道是什么测试的,如果在A版中,再加上一行代码,如下:
$dir = "C:\Program Files\aa"

If FileExists($dir) Then

        ShellExecute($dir)
MsgBox(48,"2","文件存在")
Else

        MsgBox(48, '错误', '指定文件夹:"' & $dir & '"不存在')

EndIf
发表于 2010-7-9 17:45:29 | 显示全部楼层
本帖最后由 afan 于 2010-7-9 17:53 编辑
和这段代码  运行结果有什么不同?
这是我在LZ的基础上改的!!要说结果相同,但有一点不同,我测试结果是 ...
lchl0588 发表于 2010-7-9 17:40



    WinWaitActive... 没有aa文件夹就只有wait下去了~ 你删掉 aa 文件夹再测试下~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 12:06 , Processed in 0.071635 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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