如果我在test.au3中运行:
#requireadmin
#include<IE.au3>
$oIE = _IECreate("www.google.com", 0, 1, 0, 1)
它成功打开一个新的Internet Explorer窗口并导航到www.google.com。
现在,如果我删除#requireadmin并运行:
#include<IE.au3>
$oIE = _IECreate("www.google.com", 0, 1, 0, 1)
它只是打开窗口而没有导航到URL。大约15秒后,它崩溃了:
---------------------------
AutoIt Error
---------------------------
Line 272 (File "\\intra.saaq.net\sb\du\du02\gar25\Desktop\outil_outlook\sources\Include\IE.au3"):
$oObject.navigate($sUrl)
$oObject^ ERROR
Error: The requested action with this object has failed.
---------------------------
OK
---------------------------
为什么#requireadmin只需要导航到一个URL? 有什么方法吗?
使用AutoIt3.exe - 3.3.14.0
答案 0 :(得分:3)
这似乎是Windows安全问题。
The AutoIt help for _IECreate()
描述了一些解决方法; #RequireAdmin
就是其中之一......
Windows Vista中的新安全性会导致新的浏览器窗口 在指示浏览器导航到a中的URL时创建 不同的安全区。
这也会在初始创建和导航启动时发生 与_IECreate()。
新窗口是新的浏览器实例和之前的浏览器 对象变量不再指向它。
有几种解决方法:
1)将#RequireAdmin添加到您的代码中(即使是 帐户是管理员组的一部分,将提示您 凭证,如有必要),
2)使用_IEAttach()连接到新的浏览器窗口
3)将目标网站添加到IE中的“可信站点”安全区域,
4)关闭IE中的“保护模式”,
或5)禁用UAC。必须注意理解其含义 在访问不受信任的站点时禁用IE安全功能。