ransally 发表于 2010-7-9 16:47:48

回复 14# lchl0588


    不是这个原因,你的代码失败了

ransally 发表于 2010-7-9 16:48:36

回复 13# afan


    多线程我不懂.........只知道C++多线程,这个还不知道,很难??

lchl0588 发表于 2010-7-9 16:59:10

回复 16# ransally

3mile 发表于 2010-7-9 17:03:58

为何要WinWait呢?读@error不就可以判断吗?ShellExecute("C:\Program Files\aa")
If @error Then
        Send("{enter}")
        MsgBox(48,"","文件不存在")
Else
        MsgBox(48,"","文件存在")
EndIf

ransally 发表于 2010-7-9 17:06:38

回复 18# lchl0588


    我试了好多遍,在我这失败,唉,我们公司的机子还传不了图......

ransally 发表于 2010-7-9 17:08:14

回复 19# 3mile


    提示窗口要手动关,才可以看到“文件不存在”窗口

lchl0588 发表于 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 http://www.autoitx.com/images/common/back.gifShellExecute("d:\aa")
WinWaitActive("aa")
IfWinExists("aa") Then
        Send("{enter}")
   MsgBox(48,"1","文件不存在",5)
                Else
      MsgBox(48,"2","文件存在",5)
        EndIf这样呢?

ransally 发表于 2010-7-9 17:14:48

回复 22# lchl0588


    我加入延迟Sleep()也是不行,主要是那个提示窗口关不掉,如果你成功了,
   
源码给我看下,谢啦

ransally 发表于 2010-7-9 17:23:07

回复 22# lchl0588


    汗....你的那个程序,我运行了五遍不止,真的不能成功的关掉那个提示窗口

3mile 发表于 2010-7-9 17:23:18

如果只是纠结这个问题的话。
AFAN的代码完全可以满足你的要求。

afan 发表于 2010-7-9 17:26:56

跳出消息框后,程序就暂停了,也就不会继续执行后面的 Send()... , 除非用多线程或多进程监视这个可能弹出的窗口,再做处理

ransally 发表于 2010-7-9 17:30:00

回复 25# 3mile


    就是想知道用原来的方法,怎么就不成了?比较纠结这个,嘿嘿

ransally 发表于 2010-7-9 17:31:34

回复 26# afan


    对,是的,提示窗口出来后,脚本是停止的,我加个执行脚本也是不行
   
看来要看下多线程是怎么回事了。

lchl0588 发表于 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")
IfWinExists("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

afan 发表于 2010-7-9 17:45:29

本帖最后由 afan 于 2010-7-9 17:53 编辑

和这段代码运行结果有什么不同?
这是我在LZ的基础上改的!!要说结果相同,但有一点不同,我测试结果是 ...
lchl0588 发表于 2010-7-9 17:40 http://www.autoitx.com/images/common/back.gif


    WinWaitActive... 没有aa文件夹就只有wait下去了~ 你删掉 aa 文件夹再测试下~
页: 1 [2] 3 4 5
查看完整版本: 简单程序已修正,问题原因看回复【已解决】谢谢大家!