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

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

 火... [复制链接]
发表于 2010-7-9 17:50:17 | 显示全部楼层
跳出消息框后,程序就暂停了,也就不会继续执行后面的 Send()... , 除非用多线程或多进程监视这个可能弹出 ...
afan 发表于 2010-7-9 17:26

一语惊醒梦中人啊。
呵呵,也和楼主一样在纠结。
 楼主| 发表于 2010-7-9 18:00:51 | 显示全部楼层
回复 30# afan


    终于知道为什么他运行可以,我运行不可以,没注意到细节
发表于 2010-7-9 18:05:50 | 显示全部楼层
回复 30# afan
呵呵,我们开始聊了,我再改下我的代码
$a=ShellExecute("d:\aaa")
If $a=0 Then Exit
WinWaitActive("aa")
If  WinExists("aa") Then
        Send("{enter}")
                Else
        MsgBox(48,"2","文件存在",2)
        EndIf
        
不过,我是按lz的意思改的,  写了这么多就不如你的那段代码-----------精而简  正确的代码


总而而之:au3是按顺序结构运行的
发表于 2010-7-9 18:11:22 | 显示全部楼层
回复 33# lchl0588

帮LZ测试了你的这段代码
还是不行
发表于 2010-7-9 18:15:41 | 显示全部楼层
回复  afan
呵呵,我们开始聊了,我再改下我的代码不过,我是按lz的意思改的,  写了这么多就不如你的那段 ...
lchl0588 发表于 2010-7-9 18:05



    呵呵,如果没有d:\aaa 文件夹,那从第2行起都会暂停的,得不到返回值,也同样不会继续的
发表于 2010-7-9 18:17:13 | 显示全部楼层
回复 34# yarsye
不可能吧,我运行的很正常哇!!!
一个是有文件的代码,一个没有文件的代码,我打包上传,你们测试下吧

本帖子中包含更多资源

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

×
发表于 2010-7-9 18:17:35 | 显示全部楼层
回复 33# lchl0588

那个对话框 不消掉 后面的就都不会执行
觉得你的 $a=0 用的挺好的 也貌似明白了你的意思 你想用返回值来操作 对吗?
Failure: Returns 0 and sets @error to non-zero.
发表于 2010-7-9 18:26:13 | 显示全部楼层
回复 36# lchl0588


    呵呵
首先你D盘下是不是有aaa这个文件夹?有的话 要的就不是那个结果了 如果有 请删掉看下,谢谢。
其次这个是在我机器上跑的截图 你看下 这个窗口不点击 后面的代码貌似不执行 。

本帖子中包含更多资源

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

×
发表于 2010-7-9 18:28:54 | 显示全部楼层
一直都在研究怎么让autoit去点击那个aaa窗口 如果出来的话 , 虽然用Afan老大的代码可以避免出现这个窗口,但是就想研究出来后消除的办法 。
感谢你的支持
发表于 2010-7-9 18:30:22 | 显示全部楼层
楼上几位道兄,关于LZ的问题,偶就到此结束!!!说明下:
偶完全是从LZ的代码中改写的,也就是不改变LZ的整个代码结构!!!不是像A版  另写一段正确的代码  。要我用,还是用A版的代码。没有再精而简的代码了!!
偶在33楼已说明了:AU3是按顺序结构来运行的,也就不难明白其中的原因了!!!
发表于 2010-7-9 18:44:57 | 显示全部楼层
回复 40# lchl0588


    感谢
发表于 2010-7-9 18:47:08 | 显示全部楼层
其实我也只是想知道 在出来后怎么关闭 尽管可以避免
还是觉得Afan说的有道理 “除非用多线程或多进程监视这个”
发表于 2010-7-9 19:28:38 | 显示全部楼层
不知道可以用微软的消息代码实现吗?
发表于 2010-7-9 19:42:20 | 显示全部楼层
本帖最后由 afan 于 2010-7-9 20:12 编辑

多进程测试:
$title = $CmdLine[1]
While 1
        If WinExists($title, 'Windows ') Then
                WinActive($title)
                Send('{enter}')
                Exit MsgBox(48, '这是监视程序弹出的', $title & ' 不存在 ')
        ElseIf WinExists('ok文件夹存在') Then
                Exit
        EndIf
        Sleep(1)
WEnd
以上这段保存为“1.au3”,运行下面这个脚本测试下~
$title = 'C:\aaa'
ShellExecute('1.au3', '"' & $title & '"')
ShellExecute($title)
Sleep(200)
If WinActive('[CLASS:CabinetWClass]') Then MsgBox(64, 'ok文件夹存在', '文件夹存在')
发表于 2010-7-9 20:03:36 | 显示全部楼层
回复 44# afan


    老大 抱歉 我试了 但是还是不行
运行第二个au3 ,会立马跳到1.au3上然后还是弹出来那个窗口 还是不会下去
确定不行
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 04:29 , Processed in 0.073103 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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