hwq666 发表于 2022-8-11 10:47:53

已解决 模拟上传文件不成功

本帖最后由 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

hwq666 发表于 2022-8-11 10:49:57

打开浏览器后打开百度点击上传文件

hwq666 发表于 2022-8-11 10:50:57

Local $x 有的电脑输出的0   有的又是1可以正常上传文件 。很奇怪,一样的exe    而且 那个电脑 前两天是可以用的突然又不行了

hwq666 发表于 2022-8-11 10:54:54

左边是浏览器截图

hwq666 发表于 2022-8-11 10:56:05

这是源码..

haijie1223 发表于 2022-8-11 10:58:42

返回0 的时候,你要检查一下控件ID还是不是Edit1

haijie1223 发表于 2022-8-11 10:59:55

另外,我们的语言叫做au3,不是at3

haijie1223 发表于 2022-8-11 11:02:23

发帖发到已解决问题区,你是想让谁给你解决问题?

hwq666 发表于 2022-8-11 11:11:41

haijie1223 发表于 2022-8-11 10:59
另外,我们的语言叫做au3,不是at3

不好意思 打错了 我删除重新发一下

hwq666 发表于 2022-8-11 11:14:44

haijie1223 发表于 2022-8-11 10:58
返回0 的时候,你要检查一下控件ID还是不是Edit1

我看ID还是Edit1

haijie1223 发表于 2022-8-11 11:21:12

如果控件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


hwq666 发表于 2022-8-11 11:24:53

haijie1223 发表于 2022-8-11 11:21
如果控件ID没有错误的,代码能简写尽量简写,看你写那一堆,是给自己挖坑么。
windows下文件路径是\,不是/ ...

试了你的 脚本还是不行

hwq666 发表于 2022-8-11 11:29:04

haijie1223 发表于 2022-8-11 11:21
如果控件ID没有错误的,代码能简写尽量简写,看你写那一堆,是给自己挖坑么。
windows下文件路径是\,不是/ ...

还是一样 之前不可以的电脑不行 之前可以的电脑可以

zghwelcome 发表于 2022-8-11 11:32:44

win10 以上系统如果使用了函数ControlClick 、MouseClick, 请在代码开头添加标记 #RequireAdmin ,并在执行点击前检测下目标窗口是否激活状态,不是激活先激活一下

hwq666 发表于 2022-8-11 11:35:12

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
查看完整版本: 已解决 模拟上传文件不成功