ransally 发表于 2010-7-9 16:20:14

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

本帖最后由 ransally 于 2010-7-12 09:40 编辑

ShellExecute("C:\Program Files\aa")
If WinExists("C:\Program Files\aa","") Then
        Send("{enter}")
        MsgBox(48,"","文件不存在")
Else
        MsgBox(48,"","文件存在")
EndIf
正确的程序已经知道了 afan 版主的程序是可以的。

但是现在追加一个问题,为什么不监测直接运行会出现上面的情况,那个提示窗口,怎么都关不掉

问题答案在回复中!

ransally 发表于 2010-7-9 16:21:21

依然在线等,等到六点

afan 发表于 2010-7-9 16:23:42

"C:\Program Files\aa" 是文件还是文件夹?有什么问题?

afan 发表于 2010-7-9 16:24:41

Send("{enter}") 是干啥用的?

ransally 发表于 2010-7-9 16:29:25

是文件夹,一个不存在的文件夹。Send关窗口用的,本来使用的Winclose(),关不掉,用send也关不掉

afan 发表于 2010-7-9 16:30:23

这种情况应该先用 FileExists() 检查指定目录是否存在,然后再 ShellExecute()

ransally 发表于 2010-7-9 16:30:46

激活窗口在使用Winclose(),我也没成功..........

ransally 发表于 2010-7-9 16:31:20

回复 3# afan


    这个错误,很奇怪

pusofalse 发表于 2010-7-9 16:33:31

窗口实际出现时会有延时,而此时脚本已经运行完了啊,用WinWait或Sleep加延时。

afan 发表于 2010-7-9 16:37:21

$dir = "C:\Program Files\aa"
If FileExists($dir) Then
        ShellExecute($dir)
Else
      MsgBox(48, '错误', '指定文件夹:"' & $dir & '"不存在')
EndIf

ransally 发表于 2010-7-9 16:38:07

回复 6# afan


    搞定。谢谢,afan,那你能不能告诉我,用那个方法为什么关不掉那个提示窗口??

ransally 发表于 2010-7-9 16:38:38

回复 9# pusofalse


    去试试

afan 发表于 2010-7-9 16:39:29

回复 11# ransally


    那得多线程~

lchl0588 发表于 2010-7-9 16:45:01

ShellExecute("C:\Program Files\aa")
WinWaitActive("aa")
If WinExists("aa","") Then
      Send("{enter}")
      MsgBox(48,"","文件不存在")
Else
      MsgBox(48,"","文件存在")
EndIf错就错在窗口不是路径,而是窗口名

ransally 发表于 2010-7-9 16:46:01

回复 9# pusofalse

ShellExecute("C:\Program Files\aa")
sleep(10000)
IfWinExists("C:\Program Files\aa","") Then
    WinClose("C:\Program Files\aa","")
        MsgBox(48,"","文件不存在")
Else
               
        MsgBox(48,"","文件存在")
EndIf

这样吗?还是失败,SLEEP()时间我换了好几个,都不行
页: [1] 2 3 4 5
查看完整版本: 简单程序已修正,问题原因看回复【已解决】谢谢大家!