回家路上 发表于 2015-11-24 12:49:14

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

本帖最后由 回家路上 于 2015-11-30 11:11 编辑

登录窗口标题
    登录
要自动录入的有四个控件
    两个下拉
      Combobox1
      Combobox2
    两个输入框
      SunAwtCanvas4
      RichEdit20W1
正在学习,拿身边的应用联系,遇到这个先在此询问,谢啦。

xlj310 发表于 2015-11-24 13:23:49

自动录入值可以用ControlSetText或者ControlSend,下拉框自动选定可以用ControlCommand,参数用"SetCurrentSelection"

xlj310 发表于 2015-11-24 13:24:25

你可以把你用的程序发出来,这样可以帮你写出完整的代码。

回家路上 发表于 2015-11-24 14:12:23

回复 3# xlj310


唉,好不巧,我刚好测试的是一个公司内网使用的一个小工具。这四个框好奇怪,前两个下拉用ControlCommond的SelectString和SetCurrentSelection都不好使。第三个这是什么鬼?SunAwtCanvas更奇怪---技能手动录入,也能下拉选择以前录入过的十几个用户名,更难录入了。~~~~~
我只是想找个简单的练练手而已~~~结果...
不过我还是硬用Send写到头了,选不上,模拟键盘数着个数选,也是想哭{:face (356):}ShellExecute("C:\Users\DJ\Desktop\下载.jnlp")
WinWaitActive("需要 Java Update")
ControlClick("需要 Java Update", "", "")
WinWaitActive("登录")
ControlClick("登录", "", "")
Send("{UP}")
Send("{TAB}{UP}{UP}")
Send("{TAB}")
Send("^A")
Send("{BS}adm")
ControlSetText("登录", "", "", "w")
Send("{ENTER}")

xlj310 发表于 2015-11-25 08:45:10

如果可能被干扰 建议加上BlockInput(1)禁止键鼠操作, 结束程序前再BlockInput(0)解禁

xlj310 发表于 2015-11-25 08:45:19

如果可能被干扰 建议加上BlockInput(1)禁止键鼠操作, 结束程序前再BlockInput(0)解禁

回家路上 发表于 2015-11-26 15:05:16

算是将au3第一次应用到工作中,刚学很简陋,但纪念一下,O(∩_∩)O哈!#include <Constants.au3>

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

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

;启动指定服务地址的 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", "", "")
;EndIf


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

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

;确认登录
Send("{ENTER}")
#cs
        ;Combobox1
        ;Combobox2
        ;SunAwtCanvas4
        ;RichEdit20W1
#ce
页: [1]
查看完整版本: [已解决]求助,获取了窗口,知道了控件别名,怎么自动录入值?