找回密码
 加入
搜索
查看: 2520|回复: 7

为什么没有人回答我的问题

[复制链接]
发表于 2009-7-14 13:39:23 | 显示全部楼层 |阅读模式
1. 如何判断脚本运行时成功还是失败,说简单一些就是AutoIt脚本运行有无相关的返回值。就算是再健壮的脚本也会因为环境或者其他原因运行失败,我们不可能一直用眼睛盯着屏幕判断这个脚本的运行情况,AutoIt应该是提供了这方面的判断方法吧?首先感谢各位大侠给我的回答,但我还是希望能够得到更进一步,更确切的回答。

原始问题链接如下:
http://autoitx.com/forum.php?mod=viewthread&tid=8171

2.关于foobar的自动化安装,问题如下:
-  如何操作控件SysTreeWin32,我想选择Tree中的某几项,但始终不知道如何操作?
-  AutoIt有无类似silence的安装方式?如果有,我应该怎么用?也许问题应该是这样,如果静默的安装软件?
-  AutoIt中有无办法读取到foobar的播放列表中的信息?我后找到一个方法(ControlGetText),但这个好像并不是对所有的控件有效。

原始问题链接如下:
http://autoitx.com/forum.php?mod=viewthread&tid=8221

3. 关于Skype和Kaspersky的安装问题。这两个软件用的都是非标准的windows控件!应该如何操作这类控件让AutoIt能够完成这类软件安装的自动化。我在论坛看到有人说表态安装,有哪位大侠能给解释一下么?

原始问题链接如下:
http://autoitx.com/forum.php?mod=viewthread&tid=8260

4. 代码段如下:
Local $iPid, $sResult, $sLine

$iPid = Run(@ComSpec & "/c ipconfig C:","",@SW_HIDE)

While True

        $sLine = StdoutRead($iPid)

        if @error Then ExitLoop

        $sResult &= $sLine

WEnd

MsgBox(0,"",$sResult)
运行后返回的是个空白的消息框,我想得到的是ipconfig运行的返回值,请大家帮忙看看是哪里出了问题。

原始问题链接如下:
http://autoitx.com/forum.php?mod ... &extra=page%3D1

我是一个AutoIt的初学者,碰到了很多问题。上边这些可能是非常简单或者是愚蠢的问题,但我到现在都没有解决。请大家帮帮忙吧...

谢谢了先!
发表于 2009-7-14 14:03:04 | 显示全部楼层
以后自己顶自己的贴,还有第一贴,已经跟你说的很详细了,autoit不是万能的,楼主在这样发帖,扣分
 楼主| 发表于 2009-7-14 15:20:47 | 显示全部楼层
关于第一贴,非常感谢你的回复,也因为这样。我已经将这个帖子的状态改成了以解决。只是后来,我听说有人能够让AutoIt脚本执行后,如果成功返回True,如果失败返回False。所以才接着问了一句。

另外,关于我的其他问题,你能够抽个时间帮我看看如何解决。

谢谢...
发表于 2009-7-14 15:49:07 | 显示全部楼层
本帖最后由 rolaka 于 2009-7-14 16:14 编辑

1 给谁? 最简单的 学windows写log  这种东西没有给出实际操作的设想 没人能搞的说

2
(1) 参见help文档 ControlListView函数这个不行...麻烦了
(2) 最好安装程序提供命令行模式 就像win的补丁那样 一般的安装文件 可以把窗口拉到屏幕之外 然后发送操作的办法  或者也可以在运行安装文件的时候 直接@SW_HIDE 接着就用Control系列指令操作 相关函数参见help文档 -> 函数参考 -> 窗口管理 -> Control
(3) 不大能理解
这个 我等下试试看 能给出源码就给
用下面的 就算是@sw_hide都ok的...
ControlClick('foobar2000 v0.9.6.8 Setup', '', '[CLASS:Button; INSTANCE:2]', 'left', 2)
ControlClick('foobar2000 v0.9.6.8 Setup', '', '[CLASS:Button; INSTANCE:2]', 'left', 2)
ControlClick('foobar2000 v0.9.6.8 Setup', '', '[CLASS:Button; INSTANCE:5]', 'left', 2)
ControlSend ('foobar2000 v0.9.6.8 Setup', '', '[CLASS:Edit; INSTANCE:1]', 'C:\Users\Hyperion\Desktop\foobar2000\')
ControlClick('foobar2000 v0.9.6.8 Setup', '', '[CLASS:Button; INSTANCE:2]', 'left', 2)

3. 稍后给源码...orz... 其实可以直接用send指令 发送tab&enter键 具体位置也可以根据控件和窗体左上角坐标来算相对位置来操作滴...
...这个...这个参照上面

4. ...orz...参数没给全...run要附加flag的
help里的例子
示例/演示

; Demonstrates StdoutRead()
#include <Constants.au3>

Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

MsgBox(0, "Debug", "Exiting...")
你可以搜论坛里面的ping工具 那些就是最好的例子
 楼主| 发表于 2009-7-15 13:11:08 | 显示全部楼层
4# rolaka

- 我看到你的回复中多次提到orz,这是什么的缩写?
- 你在回复中提到使用ControlListView,但Windows中树状控件不是叫ControlTreeView么?
- 真的是非常期待你的关于skype或者是Kaspersky的安装实例程序。想知道具体是如何通过操作(tab&enter)来操作安装程序。

非常感谢你的回复,虽然有些地方好还看的不是很明白。呵呵...
 楼主| 发表于 2009-7-16 19:58:26 | 显示全部楼层
终于找到如何得到AutoIt 脚本或者是应用程序的执行结果了。用staf(http://staf.sourceforge.net/),安装之后。在命令行上输入:
staf local process start shell command autoit-run-notepad.exe wait

你就能在程序运行完成后得到这个脚本的运行结果了。

评分

参与人数 1金钱 +7 收起 理由
lynfr8 + 7 钻研精神可嘉

查看全部评分

发表于 2009-7-16 21:55:52 | 显示全部楼层
谢谢楼主分享,收藏之
发表于 2009-7-18 16:57:14 | 显示全部楼层
本帖最后由 rolaka 于 2009-7-18 17:12 编辑
4# rolaka

- 我看到你的回复中多次提到orz,这是什么的缩写?
- 你在回复中提到使用ControlListView,但Windows中树状控件不是叫ControlTreeView么?
- 真的是非常期待你的关于skype或者是Kaspersky的安装 ...
gywx 发表于 2009-7-15 13:11

- 你在回复中提到使用ControlListView,但Windows中树状控件不是叫ControlTreeView么?

..写错了...


- 真的是非常期待你的关于skype或者是Kaspersky的安装 ...

...可以计算控件在窗体里的相对位置...具体的可以搜索或者看help里关于opt的项目


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("窗体1", 243, 99, 302, 218)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Button1 = GUICtrlCreateButton("点我~", 56, 32, 137, 33, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button1Click")
GUISetState(@SW_SHOW)

Opt('MouseCoordMode', 0)

MouseClick("" , 100, 80)

While 1
        Sleep(100)
WEnd

Func Button1Click()
        MsgBox(0, "", "我被点了下")
EndFunc

Func Form1Close()
        Exit
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 11:34 , Processed in 0.085561 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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