0

Web サイトを自動的に開始する VBS スクリプトを作成しようとしています。この部分は解決できました。しかし今、私はこのスクリプトに関数 login as を入れる必要があります。

だから、あなたが私を助けてくれることを願っています。これが私がウェブサイトを開くために取ったスクリプトです

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 に答える