我正在尝试从第三方创建的内部网网站上抓取一些数据,并根据数据发送电子邮件。我在Excel中使用VBA执行此操作,因为我的计算机已被锁定,并且没有Powershell或任何其他脚本语言。
问题是网站需要使用Windows安全性对话框登录。我搜索了几个小时,没有任何工作。 VBA中的SendKeys不起作用,因为安全框接管并暂停VBA。这几乎奏效了:VBA code to pass username & password。
问题是当我安排它(任务调度程序)时,有时密码(用户名已经填充)没有进入安全对话框,而是进入Word或其他任何打开的对话框。我不认为" Windows安全"是窗口的实际名称(虽然这是标题中的内容)。
编辑 - 添加一些代码:
Set IE = New InternetExplorerMedium
IE.Visible = True
CreateObject("WScript.Shell").AppActivate "XYZ.net - Internet Explorer"
URL = "https://XYZ.aspx"
IE.Navigate URL
Do While IE.ReadyState = 4: DoEvents: Loop
Do Until IE.ReadyState = 4: DoEvents: Loop
HWNDSrc = IE.HWND
SetForegroundWindow HWNDSrc
IE.document.getElementById("overridelink").Click
Application.Wait (Now + TimeValue("00:00:08"))
Shell "WScript H:\data\excel\Logon.vbs", vbNormalFocus