Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer AUTOIT在IE9及以上版本中自动下载文件_Internet Explorer_Autoit - Fatal编程技术网

Internet explorer AUTOIT在IE9及以上版本中自动下载文件

Internet explorer AUTOIT在IE9及以上版本中自动下载文件,internet-explorer,autoit,Internet Explorer,Autoit,我目前正在编写一个脚本,使用AUTOIT下载一个文件。该脚本的工作原理是,它将打开IE,连接到窗口,输入URL字符串以下载文件,然后在出现IE9下载管理器提示时发送按键以下载文件 我遇到的问题是,有时当连接速度较慢时,IE9下载提示出现的时间太长,并且击键未命中目标。使用SLEEP是不可能的,因为显示文件下载会花费不同的时间,并且如果脚本在1秒后显示提示时睡眠6秒,则会不必要地减慢脚本的速度 另外,我不能使用INET get函数,因为我要传递的URL是到报表服务器的,报表在那里生成,文件在浏览器

我目前正在编写一个脚本,使用AUTOIT下载一个文件。该脚本的工作原理是,它将打开IE,连接到窗口,输入URL字符串以下载文件,然后在出现IE9下载管理器提示时发送按键以下载文件

我遇到的问题是,有时当连接速度较慢时,IE9下载提示出现的时间太长,并且击键未命中目标。使用SLEEP是不可能的,因为显示文件下载会花费不同的时间,并且如果脚本在1秒后显示提示时睡眠6秒,则会不必要地减慢脚本的速度

另外,我不能使用INET get函数,因为我要传递的URL是到报表服务器的,报表在那里生成,文件在浏览器中呈现给我

我正在看controlGetHandle函数,如果有人能提供一些关于如何浏览IE下载管理器提示的想法,我将不胜感激。即在出现下载提示时激活脚本

提前感谢各位。

我想这是一个可以帮助你们的功能。它暂停脚本,直到指示的窗口存在,并且作为安全防护,还有一个超时参数,以便您可以使用:

WinWait("download", "" , 10000 )
这将等待一个标题为“下载”的窗口,直到10秒过去。

在这里

#include <IE.au3>
Opt("WinTitleMatchMode", 2)


Local $oIE = _IE_Example("form")

$oInputFile = _IEGetObjByName($oIE, "fileExample")
$FileToUpload = "c:\myfile.txt"

_IEAction($oInputFile, "focus")
$hIE = _IEPropertyGet($oIE, "hwnd")
ControlSend($hIE, "", "Internet Explorer_Server1", " ")

WinWait("Choose File", "", 30)

Sleep(1000)

WinActivate("Choose File")
ControlSend("Choose File", "", "[CLASS:Edit; INSTANCE:1]", $FileToUpload, 1)
Sleep(1000)
WinActivate("Choose File")
ControlSend("Choose File", "", "", "{ENTER}")
#包括
选项(“WinTitleMatchMode”,2)
本地$oIE=_IE_示例(“表格”)
$oInputFile=\u IEGetObjByName($oIE,“文件示例”)
$FileToUpload=“c:\myfile.txt”
_IEAction($oInputFile,“焦点”)
$hIE=\u IEPropertyGet($oIE,“hwnd”)
ControlSend($hIE,“,”Internet Explorer\u Server1“,”)
WinWait(“选择文件”,“30”)
睡眠(1000)
WinActivate(“选择文件”)
ControlSend(“选择文件”,“类:编辑;实例:1]”,$FileToUpload,1)
睡眠(1000)
WinActivate(“选择文件”)
ControlSend(“选择文件”、“输入文件”、“输入文件”)

否,winwait(“下载”和“”)将不起作用,因为通知弹出窗口不在单独的窗口中。然后只需将该通知弹出窗口标题的子字符串作为函数参数。我应该指出,我使用的“下载”字符串只是一个示例。此代码仅适用于使用浏览对话框上载文件。您是否有可能改为下载该文件。这是从IE弹出的通知使用_IELinkGetCollection查找链接及其URL,然后在其上使用InetGet。谢谢,但是,_IELinkGetCollection报告没有链接