|
| Autor |
Nachricht |
*andi* Newbie

Anmeldedatum: 02.02.2009 Beiträge: 6
|
Wie Pw über VBA in Router eingeben? Versuche gescheitert...
Verfasst am: 04.02.2009, 15:53 |
|
|
Hallo
Ich versuche seit Tagen mich über mein VBA in meinen Router einzuloggen um dort die Telefondaten auszulesen ( Wer hat angerufen / Wer wurde angerufen)
Jedoch scheitert es gerade sehr am Login.
Der Quelltext der Seite ist
| Code: | <DIV id=c_border>
<DIV id=c_pfad>Router - Einstieg in die Konfiguration</DIV>
<DIV id=c_titel>Passwort Eingabe</DIV>
<DIV id=c_last>
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="100"><input type="password" class="stylepwd" name="pws" size="12" maxlength="12" onkeypress="return stEnter(event,this);"></td>
|
Ich hab es erstmal mit einem Browser element versucht in das dann per Button klick der Text in das Passwort-kästchen eingefügt wird, jedoch hat das nicht hingehauen.
Hier der Code:
Versuch 1
| Code: |
WebBrowser1.ObjectHTMLForm.elements("pws").Value = "meinpasswort"
|
Fehlermeldung: Run-time error 438: Object doesn't support this property or method
Versuch 2:
| Code: |
WebBrowser1.Document.Forms(0).All("pws").SetAttribute ("password", "meinpasswort"
)
|
Versuch 3:
| Code: |
WebBrowser1.Document.GetElementById("password").InnerText = "meinpasswort"
|
Dann habe ich noch etwas gelesen von HttpWebRequest, was ich dann nicht so kapiert habe wie das bei MSDN beschrieben ist.
Das mit dem Elements im 1. Versuch habe ich auch von MSDN da steht jedoch | Code: | | objHTMLForm.elements("Nachname").Value = "Schiffer" | zum ausfüllen eines Formulars... das hat auch nich geklappt und ich wusste nicht ob das objHTMLForm nun mit WebBrowser1.Object... zu ersetzen ist oder wie man das macht
Vielleicht weis ja jemand, wie ich das lösen kann.
Mit freundlichen Grüßen Andi
Hab hier mal die Excel Datei hochgeladen. Zu beachten ist die UserForm im VB - Editor da is der Code drin und alles
http://www.ladshoch.de/shareportal/app/template/Download.vm/d/8B57B5938238FEF2507810C7D1D500EB |
|
| |
|
 |
*andi* Newbie

Anmeldedatum: 02.02.2009 Beiträge: 6
|
Verfasst am: 05.02.2009, 20:01 |
|
|
so.. da hier andscheinend entweder keiner eine Lösung für mein Problem hat habe ich mir ein primitives Programm zusammengebastelt welches mich einloggt und alles anzeigt.
Jedoch nur noch 1 Problem:
Ich möchte eine .exe Datei daraus machen... als ich es aber in Vb6 importiert habe und die objectlibrary eingestellt habe für excel 0x hat er mir meine Fenstergrößen nicht verstellt... denn dies sollte das prog automatisch machen.
siehe hier:
Steuermodul
Code dafür:
| Code: |
Public btn As Byte
Private Sub vbIn_Click()
btn = 1
Hide
End Sub
Private Sub vbOut_Click()
btn = 2
Hide
End Sub
Private Sub vbLogout_Click()
btn = 3
Hide
End Sub
Private Sub vbLogin_Click()
wbr.Navigate "http://192.168.0.1/top_start_passwort.stm"
Do While Options.wbr.ReadyState <> READYSTATE_COMPLETE Or Busy
DoEvents
Loop
'pw senden
SendKeys ("{t}")
SendKeys ("{e}")
SendKeys ("{s}")
SendKeys ("{t}")
SendKeys ("{p}")
SendKeys ("{a}")
SendKeys ("{s}")
SendKeys ("{s}")
SendKeys ("{w}")
SendKeys ("{o}")
SendKeys ("{r}")
SendKeys ("{t}")
SendKeys "{ENTER}", Application.Wait(Now + TimeValue("0:00:01"))
'Pw senden Ende
Do While Options.wbr.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
btn = 4
Hide
End Sub
|
Und hier der Code für das Hauptmodul bzw das Steuermodul:
| Code: |
Sub PreMain()
Options.Height = 66
Options.Width = 112
Options.Show
If Options.btn = 4 Then
Call Login
End If
End Sub
Sub Main()
Options.Show
Select Case Options.btn
Case 1
Call IncomingCalls
Case 2
Call OutgoingCalls
Case 3
Call Logout
End Select
End Sub
Sub Login()
If Options.wbr.ReadyState = READYSTATE_COMPLETE Then
Options.vbIn.Visible = True
Options.vbOut.Visible = True
Options.vbLogout.Visible = True
Options.vbLogin.Visible = False
MsgBox "Login Erfolgreich ! Wählen Sie eine Option um forzufahren.", vbInformation, "access granted"
End If
Options.Height = 66
Options.Width = 310
Call Main
End Sub
Sub IncomingCalls()
Options.wbr.Navigate "http://192.168.0.1/hcti_status_telanrl.stm"
Do While Options.wbr.ReadyState <> READYSTATE_COMPLETE Or Busy
DoEvents
Loop
Options.Height = 486
Options.Width = 522
Call Main
End Sub
Sub OutgoingCalls()
Options.wbr.Navigate "http://192.168.0.1/hcti_status_telgdat.stm"
Do While Options.wbr.ReadyState <> READYSTATE_COMPLETE Or Busy
DoEvents
Loop
Options.Height = 486
Options.Width = 522
Call Main
End Sub
Sub Logout()
Options.wbr.Navigate "http://192.168.0.1/cgi-bin/logout.cgi"
Do While Options.wbr.ReadyState <> READYSTATE_COMPLETE Or Busy
DoEvents
Loop
MsgBox "Erfolgreich Ausgeloggt ! Programm wird geschlossen !", vbInformation, "Logout"
Options.Height = 66 'FensterSize resetten
Options.Width = 112
Options.vbIn.Visible = False
Options.vbOut.Visible = False
Options.vbLogout.Visible = False
Options.vbLogin.Visible = True
Exit Sub
End Sub
|
In VB6 muss man allerdings noch das "sub PreMain()" in "Sub Main()" umbenennen und in den Prozeduren das "Call Main" in "Call PreMain" ändern ..sonst startet er nicht mit der Richtigen Prozedur..
Im Hauptmodul werden immer die Fenstergrößen angepasst, sodass gewisse Elemente nicht mehr sichtbar sind bzw wenn nur 1 Schaltfläche sichtbar ist, das Fenster auch kleiner wird....
Das funktioniert in VB6 nicht..denn er macht das fenster direkt auf minimum und ich sehe erstmal nur den Windows Xp Balken mit den schönen optionen...
wie nimmt VB6 meine Fenstergrößen an ?
Wenn man es schwer erklären kann , kann mans mir auch einfach schnell in die Exe einfügen und uppen bin für alles dankbar
*EDIT*
So habs jetz auch selbst rausgefunden... liegt daran dass VB6 die Größen anderst definiert... falls sich jmd ähnliches basteln will und nichts gegen eine Primitive Lösung hat :> |
|
| |
|
 |
|
|