Håller på och försöker fixa så att jag kan logga in från ett VB-program på en sida jag håller på med. Har denna koden nu:
Private Sub Form_Load()
Dim ieURL As InternetExplorer
Set ieURL = New InternetExplorer
ieURL.Navigate "***"
Dim strPass As String
Dim strUser As String
strPass = "pass"
strUser = "user"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys strUser
SendKeys "{TAB}"
SendKeys strPass
SendKeys "{TAB}"
SendKeys "{ENTER}"
End Sub
Problemet är att ingenting händer. Någon som vet varför? :D Eller har några förslag på bättre sätt att lösa (finns säkert) :r
En annan sak, hur kan man kolla hur det går för programmet att ansluta till sidan? Finns det någon funktion eller så?
Ja. Sendkeys skickar tangenttryckningar till den applikation som har fokus. En osynlig instans av IE kan inte ha input-fokus. Du skickar alltså tangentnedtryckningar i blindo.
Eller har några förslag på bättre sätt att lösa (finns säkert)
Ja. Om du bara vill logga in HTTP-mässigt så är det nog bättre att använda en Winsockkontroll. Hur koden då ser ut beror på rätt mycket saker: Hur sidan ser ut. Namn på variablerna som postas. Eventuella cookies. Exakt vad du vill göra. Osv ..
hur kan man kolla hur det går för programmet att ansluta till sidan?
Vill du ha visuell feed-back från din nuvarande kod kan du skriva tex:
Private WithEvents ieURL As InternetExplorer
Private Sub Form_Load()
Set ieURL = New InternetExplorer
ieURL.Navigate "***"
Dim strPass As String
Dim strUser As String
'strPass = "pass"
'strUser = "user"
'SendKeys "{TAB}"
'SendKeys "{TAB}"
'SendKeys strUser
'SendKeys "{TAB}"
'SendKeys strPass
'SendKeys "{TAB}"
'SendKeys "{ENTER}"
End Sub
Private Sub ieURL_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
MsgBox "Japp, nu är vi inne på sidan: " & ieURL.Document.Title
End Sub
Ja, jag vet att det ínte är fokuserat, men hur gör man det? :) SetFocus funkar inte, och det är den enda jag har hört om :r Har inte hållit på så länge :D
Som jag sa ovan så kan en osynlig osynlig/fönsterlös instans av något aldrig ha fokus. Isåf fall är det bättre du använder en visuell Explorer-kontroll (Project->Components->Microsoft Internet Controls, dra sen ut"jordgloben" på formuläret.)
Din kod bör sen bli:
Private Sub Form_Load()
WebBrowser1.Navigate "***"
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim strPass As String, strUser As String
strPass = "pass"
strUser = "user"
SendKeys "{TAB}"
' osv
End Sub