找回密码
 加入
搜索
查看: 2265|回复: 6

[AU3基础] [已解决]求助,获取了窗口,知道了控件别名,怎么自动录入值?

  [复制链接]
发表于 2015-11-24 12:49:14 | 显示全部楼层 |阅读模式
本帖最后由 回家路上 于 2015-11-30 11:11 编辑

登录窗口标题
    登录
要自动录入的有四个控件
    两个下拉
        Combobox1
        Combobox2
    两个输入框
        SunAwtCanvas4
        RichEdit20W1
正在学习,拿身边的应用联系,遇到这个先在此询问,谢啦。
发表于 2015-11-24 13:23:49 | 显示全部楼层
自动录入值可以用ControlSetText或者ControlSend,下拉框自动选定可以用ControlCommand,参数用"SetCurrentSelection"
发表于 2015-11-24 13:24:25 | 显示全部楼层
你可以把你用的程序发出来,这样可以帮你写出完整的代码。
 楼主| 发表于 2015-11-24 14:12:23 | 显示全部楼层
回复 3# xlj310


唉,好不巧,我刚好测试的是一个公司内网使用的一个小工具。这四个框好奇怪,前两个下拉用ControlCommond的SelectString和SetCurrentSelection都不好使。第三个这是什么鬼?SunAwtCanvas更奇怪---技能手动录入,也能下拉选择以前录入过的十几个用户名,更难录入了。~~~~~
我只是想找个简单的练练手而已~~~结果...
不过我还是硬用Send写到头了,选不上,模拟键盘数着个数选,也是想哭
ShellExecute("C:\Users\DJ\Desktop\下载.jnlp")
WinWaitActive("需要 Java Update")
ControlClick("需要 Java Update", "", "[CLASSNN:Button3]")
WinWaitActive("登录")
ControlClick("登录", "", "[CLASSNN:Combobox1]")
Send("{UP}")
Send("{TAB}{UP}{UP}")
Send("{TAB}")
Send("^A")
Send("{BS}adm")
ControlSetText("登录", "", "[CLASSNN:RichEdit20W1]", "w")
Send("{ENTER}")
发表于 2015-11-25 08:45:10 | 显示全部楼层
如果可能被干扰 建议加上BlockInput(1)禁止键鼠操作, 结束程序前再BlockInput(0)解禁
发表于 2015-11-25 08:45:19 | 显示全部楼层
如果可能被干扰 建议加上BlockInput(1)禁止键鼠操作, 结束程序前再BlockInput(0)解禁

评分

参与人数 1金钱 +20 收起 理由
回家路上 + 20 乐于助人

查看全部评分

 楼主| 发表于 2015-11-26 15:05:16 | 显示全部楼层
算是将au3第一次应用到工作中,刚学很简陋,但纪念一下,O(∩_∩)O哈!
#include <Constants.au3>

;接收参数
If $CmdLine[0]<5 Then
        MsgBox($MB_SYSTEMMODAL, "提示", "参数缺失。")
        Exit
EndIf
;MsgBox(4096, "个数", $CmdLine[0])
;MsgBox(4096, "参数1", $CmdLine[1])
;MsgBox(4096, "参数2", $CmdLine[2])
;MsgBox(4096, "参数3", $CmdLine[3])
;MsgBox(4096, "参数4", $CmdLine[4])
;MsgBox(4096, "参数5", $CmdLine[4])

;声明变量
Global $javawsPath=$CmdLine[1]                                                        ;javaws.exe所在路径
Global $serverPath=$CmdLine[2]                                                        ;要连接的服务器
Global $comboxSels=StringSplit($CmdLine[3], ";")                ;所有下拉框选项
Global $userName=$CmdLine[4]                                                        ;用户名
Global $password=$CmdLine[5]                                                        ;密码

;启动指定服务地址的 webstart 客户端
If $javawsPath=="" Then
        $javawsPath = "javaws"
EndIf
ShellExecute($javawsPath, "http://" & $serverPath & "/webstart.jnlp")

;通过“javaws http://xxx/webstart.jnlp”的方式打开好像没有这一步
;WinWaitActive("需要 Java Update", "", 5)
;If WinActive("需要 Java Update") Then
;        ControlClick("需要 Java Update", "", "[CLASSNN:Button3]")
;EndIf


;对于弹出安全警告,直接选择
Do
        WinWaitActive("安全警告", "", 1)
        If WinActive("安全警告") Then
                Send("!i")
                Send("!r")
        EndIf
Until WinActive("登录")

;录入登录信息
WinWaitActive("登录")
ControlClick("登录", "", "[CLASSNN:Combobox1]")                        ;将焦点定于第一个下拉框
For $i = 1 To $comboxSels[0]                                                        ;循环设置 下拉框值
        ;MsgBox($MB_SYSTEMMODAL, "设置", "第" & $i & "个" & $comboxSels[$i])
        Send("{HOME}")
        Send("{DOWN " & ($comboxSels[$i]-1) & "}")
        Send("{TAB}")
Next
Send("^a")
Send("{BS}" & $userName & "{LSHIFT}")                                                        ;设置 用户名 ,最后一个shift确保汉字输入法也能输入
ControlSetText("登录", "", "[CLASSNN:RichEdit20W1]", $password)        ;设置 密码

;确认登录
Send("{ENTER}")
#cs
        ;Combobox1
        ;Combobox2
        ;SunAwtCanvas4
        ;RichEdit20W1
#ce
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 22:20 , Processed in 0.146083 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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