我一直在使用wsh与iMacros一起运行vbscripts,我现在已经工作了3年。我知道iMacros浏览器本身有一个隐藏运行选项,但我必须使用的基于Web的数据库接口在iMacros浏览器中不起作用。出于这个原因,我不得不使用Internet Explorer。我对脚本本身或它的运行方式没有任何问题。我想改进的是如何处理Internet Explorer窗口本身。
目前,当启动iMacros时,它会创建一个非最大化状态的IE窗口,该状态与创建上一个窗口的位置级联。由于iMacros的行为,我然后使用iMacros脚本调整窗口大小,以便为脚本呈现足够的页面以查看它所需的一切。
Set iim1 = CreateObject ("imacros")
iret = iim1.iimOpen ("-ie -iePrivate", TRUE, 300)
iret = iim1.iimPlayCode("SIZE X=" & scrWidth & " Y=" & scrHeight)
这一切都很好,花花公子。这些脚本计划在特定时间运行,从数据库中收集信息,然后将这些数据导入Excel电子表格并打印出来。
我想要做的是在这些脚本运行时隐藏IE窗口。因为我不首先创建IE窗口(Set objIE = CreateObject("internetexplorer.Application")
),所以我无法访问IE窗口对象。我让iMacros使用-iePrivate标志创建窗口,这样如果我应该在脚本执行时登录并在db中工作,它将不会打扰我自己的IE窗口。但是,它确实尝试在脚本执行时获得焦点并成为活动应用程序。这可能非常烦人。我的目标是能够与我的同事共享这些脚本,但我不希望IE窗口弹出,而他们可能正在处理其他事情。
有没有办法获取iMacros创建的IE对象,以便隐藏窗口?
答案 0 :(得分:0)
这是Internet Explorer和资源管理器窗口(它们曾经是同一个程序)。
Set objShell = CreateObject("Shell.Application")
Set AllWindows = objShell.Windows
For Each window in AllWindows
msgbox window.locationname
Next