0

我尝试创建一个 VBS 脚本,它会自动启动一个网站。这部分我可以解决。但现在我需要在这个脚本中加入函数 login ,这就是我一直卡住的地方。

所以我希望你能帮助我。这是我打开网站的脚本

Dim objExplorer


 Set objExplorer = WScript.CreateObject("InternetExplorer.Application")

 Do While (objExplorer.Busy)
 Wscript.Sleep 250
 Loop

 objExplorer.TheaterMode = False
 objExplorer.AddressBar = True
 objExplorer.MenuBar = True
 objExplorer.StatusBar = True
 objExplorer.ToolBar = False
 objExplorer.Resizable = True


 objExplorer.Height = 600
 objExplorer.Width = 800
 objExplorer.Left = 0
 objExplorer.Top = 0
 ' objExplorer.FullScreen = True
 objExplorer.Silent = False
 objExplorer.Visible = True


 objExplorer.Navigate https://mi-xxxxx-xxx-xxxxx.xxx.com/xxxxxxxxxxxxx/login.aspx

objExplorer.Login = User
ObjExplorer.Password = Password

 wscript.sleep 6000

Set objShell = CreateObject("Wscript.Shell")
 objShell.Run("taskkill /F /IM iexplore.exe /T")

 Set objExplorer = nothing

我希望有一个简单的方法来得出一个结果。

非常感谢您在这种情况下的帮助。最好的问候马丁

4

2 回答 2

2

与其尝试通过 GUI 自动登录,不如尝试使用Fiddler之类的东西检查登录过程。这应该为您提供将凭据从客户端传递到服务器的实际请求。有了这些信息,您可以使用XMLHttpRequest自动登录:

url = "https://mi-xxxxx-xxx-xxxxx.xxx.com/xxxxxxxxxxxxx/login.asp"

user = "..."
pass = "..."
credentials = "username=" & user & "&password=" & pass

Set req = CreateObject("Msxml2.XMLHttp.6.0")
req.open "POST", url, False
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send credentials

If req.status = 200 Then
  'login successful
Else
  'login failed
End If

您可能需要根据 Fiddler 透露的内容调整url和字符串。credentials您可能还需要使用以下内容对用户名和/或密码进行编码:

Function Encode(ByVal str)
  Set re = New RegExp
  re.Pattern = "[^a-zA-Z0-9_.~-]"

  enc = ""
  For i = 1 To Len(str)
    c = Mid(str, i, 1)
    If re.Test(c) Then c = "%" & Right("0" & Hex(Asc(c)), 2)
    enc = enc & c
  Next

  Encode = enc
End Function
于 2013-10-10T15:13:49.433 回答
0

我找到了一个需要结果的好方法。

WScript.Sleep 5000
WshShell.SendKeys "******"
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WScript.Sleep 3000
WshShell.SendKeys "*********"
WshShell.SendKeys "{TAB}"
WScript.Sleep 3000
WshShell.SendKeys "{ENTER}"

wscript.sleep 10000

所以这个任务就解决了。非常感谢您的所有命令。最好的问候马丁

于 2013-11-07T11:59:26.913 回答