已解决 模拟上传文件不成功
本帖最后由 hwq666 于 2022-8-11 11:39 编辑同样使用下方的脚本文件在别其他电脑可以运行上传成功,有的电脑之前可以然后又不行了,
目前看是没有报错就是到 Local $x = ControlFocus($title,"","") 这一句的返回值变成0了 但是不知道为什么会这样 排查了这个控件ID是没有变化的啊
handleUpload()
Func handleUpload()
Dim $title ="打开"
if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒
WinWaitActive($title)
WinActivate($title) ;找到弹出窗口之后,激活当前窗口
Local $x = ControlFocus($title,"","")
MsgBox(32,"ok",$x)
ControlSetText($title,"","Edit1","E:/video/2.mp4") ;把文件路径放入输入框,此”Edit1“是用FinderTool获取到的
ControlClick($title,"","Button1") ;点击保存或者打开或者上传按钮,此“Button1”使用FinderTool获取到的
Else
Return False
EndIf
EndFunc
打开浏览器后打开百度点击上传文件 Local $x 有的电脑输出的0 有的又是1可以正常上传文件 。很奇怪,一样的exe 而且 那个电脑 前两天是可以用的突然又不行了 左边是浏览器截图
这是源码..
返回0 的时候,你要检查一下控件ID还是不是Edit1
另外,我们的语言叫做au3,不是at3 发帖发到已解决问题区,你是想让谁给你解决问题? haijie1223 发表于 2022-8-11 10:59
另外,我们的语言叫做au3,不是at3
不好意思 打错了 我删除重新发一下 haijie1223 发表于 2022-8-11 10:58
返回0 的时候,你要检查一下控件ID还是不是Edit1
我看ID还是Edit1 如果控件ID没有错误的,代码能简写尽量简写,看你写那一堆,是给自己挖坑么。
windows下文件路径是\,不是/吧。
Func handleUpload()
Local $iTimer = TimerInit()
Do
If TimerDiff($iTimer) > 4 * 1000 Then Return False
Until ControlSetText("打开", "", "Edit1", "E:\video\2.mp4")
Return ControlClick("打开", "", "Button1")
EndFunc ;==>handleUpload
haijie1223 发表于 2022-8-11 11:21
如果控件ID没有错误的,代码能简写尽量简写,看你写那一堆,是给自己挖坑么。
windows下文件路径是\,不是/ ...
试了你的 脚本还是不行 haijie1223 发表于 2022-8-11 11:21
如果控件ID没有错误的,代码能简写尽量简写,看你写那一堆,是给自己挖坑么。
windows下文件路径是\,不是/ ...
还是一样 之前不可以的电脑不行 之前可以的电脑可以 win10 以上系统如果使用了函数ControlClick 、MouseClick, 请在代码开头添加标记 #RequireAdmin ,并在执行点击前检测下目标窗口是否激活状态,不是激活先激活一下 zghwelcome 发表于 2022-8-11 11:32
win10 以上系统如果使用了函数ControlClick 、MouseClick, 请在代码开头添加标记 #RequireAdmin ,并在 ...
#RequireAdmin
handleUpload()
Func handleUpload()
Local $iTimer = TimerInit()
Do
If TimerDiff($iTimer) > 4 * 1000 Then Return False
Until ControlSetText("打开", "", "Edit1", "E:\video\2.mp4")
Return ControlClick("打开", "", "Button1")
EndFunc
页:
[1]
2