AutoIt 脚本 'cannot find file' 错误

AutoIt script 'cannot find file' error

当我运行下面的代码时出现错误,请帮助我正确运行代码:)

#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$sFile = _DownloadFile('https://cdn.pixabay.com/photo/2013/06/25/22/09/rose-141314_960_720.jpg')
    shellExecute($sFile)
Func _DownloadFile($sURL)
Local $hDownload, $sFile
$sFile = StringRegExpReplace($sURL, "^.*/", "")
$sDirectory = @TempDir & $sFile
$hDownload = InetGet($sURL, $sDirectory, 17, 1)
InetClose($hDownload)
Return $sDirectory
EndFunc; == >_GetURLImage

它实际上在我的系统上运行良好,但我可以告诉你哪里出了问题。您将 InetGet 的第四个参数传递为 1 ($INET_DOWNLOADBACKGROUND),这意味着下载在后台进行,脚本继续执行。函数中的下一个命令是关闭 InetGet 返回的句柄,但 AutoIt 文档清楚地说明了当您对尚未完成的下载执行此操作时会发生什么 - 下载将被取消。

因此,只需将您发送给 InetGet 函数的最后一个参数更改为 0 即可,它应该可以工作。或者您可以使用 InetGetInfo 查看是否下载完成。