WebBrowser Control - NewWindow2 > Objektreferenz

yvesgay

Grünschnabel
Hallo Forum!

Ich hoffe diese Frage wird etwas anspruchsvoller...
sonst brauche ich einen Spaten um mich irgendwo schamrot einzugraben... :sad:

Basierend auf dem WebBrowser Control (Microsoft Internet Controls) habe ich einen Internet-Café Browser geschrieben.
Full-Screen, reduzierte Toolbar, keine Form-Menüs etc., alles funktioniert prima, bis auf das Öffnen von Links "im neuen Fenster".
Dann öffnet er - alleine gelassen - immer einen voll :eek: funktionsfähigen Internet Explorer :(

Kurz vorher wird der NewWindow2-Event gefeuert und eigentlich sollte ich ein neues Browserobjekt zuweisen können, daß dann als "neues Fenster" die Navigation fortsetzt.
Im Idealfall also ein neu geladenes Form-Object mit Borderstyle "Werkzeug", darauf ein frisches WebBrowser-Control und das an NewWindow2 übergeben...
aber wie :confused:

Alle bisherigen Versuche bewirken einen Programmabbruch mit der Begründung die geforderte Automatisierung sei vom Objekt nicht unterstützt... :(
Code:
Private Sub  object_NewWindow2( _
	ByRef ppDisp As Object, _
	ByRef Cancel As Boolean)
MSDN-Referenz für den NewWindow2-Event

Hat vielleicht schon mal jemand erfolgreich mit dem WebBrowser-Control gearbeitet und von einem Fenster zum nächsten übergeben?

Hoffnungsvoll auf Antworten, Kommentare und Augenöffner wartend, Yves
 
ppDisp definiert?

auf der MSDN Seite wird dazu auf folgendes hingewiesen:

Do nothing and do not set ppDisp to any value. This will cause the object that fired the event to create a new InternetExplorer object to handle the navigation.

Es stimmt also unterumständen die ppDisp objektzuweisung nicht.

gruß
thekorn
 
In dem Moment, da NewWindow2 getriggert wird, ist noch ppDisp = empty.
Also müsste man doch sagen können ppDisp = <neu geladenes webbrowsercontrol> damit ppDisp dann diesem Control die Navigation übergibt... und genau DAS passiert nicht und stattdessen wirft es einen Fehler bezüglich fehlender Objektautomatisurung...:sad:
 
so gehts

also ich denke, frei nach MSDN, dass es so gehen müsste:

Code:
Private Sub WebBrowser1_NewWindow2(ppDisp As Object,
                                   Cancel As Boolean)
   Dim frmWB As Form1
   Set frmWB = New Form1

   frmWB.WebBrowser1.RegisterAsBrowser = TRUE

   Set ppDisp = frmWB.WebBrowser1.Object
   frmWB.Visible = True
End Sub

gruß
thekorn
 
Super !
Thx das hilft mir auch weiter !
Aber ich hab da ein anderes Problem... Der browser schließt sich manchmal einfach von selbst ! Ich weiß nich aber, ich glaube das hat was mit der progressbar zu tun... Falls ihr mi weiterhelfen könnt, bitte ich darum ;)
Code:
Private Sub webBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
If (Progress = -1) Or (ProgressMax = 0) Then
StatusBar1.SimpleText = ""
ProgressBar1.Value = 0
Else
StatusBar1.SimpleText = CStr(Progress * 100 / ProgressMax) & " %"
ProgressBar1.Value = (Progress * 100 / ProgressMax)
DoEvents
End If
Text1.Text = WebBrowser1.LocationURL
End Sub
Hätte da noch eine Frage : Wie kann ich möglichst einfach einen Downloadmanager für meinen Browser machen ?
Thx schon mal
 
THX an thekorn :)

Erstaunlicherweise liefert die Progress-Eigenschaft im Progress_CHanged bisweilen Ergebnisse über 100%... wenn Du das wegfängst, passt es eigentlich ;)
 
Also ich habe das so gelöst.
Code:
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, _
ByVal ProgressMax As Long)
    Dim dummy As Integer
    If Progress = -1 Then
        ProgressBar1.Value = 0
    Else
        If ProgressMax > 0 Then
            dummy = CInt(Progress * 100 / ProgressMax)
            If dummy > 100 Then dummy = 100
            ProgressBar1.Value = dummy
        End If
    End If
End Sub
Hth, Yves
 
Jo das hilft...
Aber kann mir einer sagen woran das liegen kann das der browser nicht geschlossen wird wenn man oben rechts auf das x klickt...
Also der browser läuft dann immer noch im hintergrund... (tastkmanager)
also an der progressbar kanns nicht liegen..
 
Keiner mehr was dazu zu sagen ?:(
Edit : Wie kann ich bei einer toolbar die caption der buttons per besehl ändern ?
Also nicht über die eigenschaftenliste.... Ich will das nämlich individuell machen.
(Die captions in eine datei speichern und auslesen| speichern/laden is aber nicht das problem)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück