Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0262: Aktuelle Seitenadresse des Netscapes und des IEs mittels DDE

 von 

Beschreibung 

Der Netscape hat es schon länger, der IE meines Wissens erst ab der 5er Version, die DDE-Schnittstelle. Hier wird gezeigt wie mittels dieser Technik bei den beiden großen Browser, die aktuell angezeigte Internetadresse ausgelesen werden kann. ES gibt, speziell beim Netscape bestimmt noch eine Fülle von weiteren Befehlen. Tips zu diesem Thema sind immer gerne willkommen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [3,24 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Timersteuerelement "TimerCheckBrowsers"
' Steuerelement: Rahmensteuerelement "Frame2"
' Steuerelement: Schaltfläche "btn_lesenIE" auf Frame2
' Steuerelement: Textfeld "TxtIETitle" auf Frame2
' Steuerelement: Textfeld "TxtIEUrl" auf Frame2
' Steuerelement: Beschriftungsfeld "LabIEWinTitle" auf Frame2
' Steuerelement: Beschriftungsfeld "LabIEURL" auf Frame2
' Steuerelement: Rahmensteuerelement "Frame1"
' Steuerelement: Schaltfläche "btn_lesenNetscape" auf Frame1
' Steuerelement: Textfeld "TxtNSUrl" auf Frame1
' Steuerelement: Textfeld "TxtNSTitle" auf Frame1
' Steuerelement: Beschriftungsfeld "LabNSURL" auf Frame1
' Steuerelement: Beschriftungsfeld "LabNSWinTitle" auf Frame1
' Steuerelement: Textfeld "TxtDDE"


'Autor: Julian Scheel
'E-Mail: jscheel@activevb.de

'Funktioniert beim IE erst ab Version 5

Option Explicit

Sub GetURLFromNetscape(url As String, title As String, _
    framename As String)
    
    Dim c As Byte
    Dim thisParm As Integer
    Dim cc As Long
    Dim p As Long
    Dim parms(3) As String
    Dim quoting As Boolean
    
    On Error Goto GUBErrHandler
    
    TxtDDE.LinkTopic = "NETSCAPE|WWW_GetWindowInfo"
    TxtDDE.LinkItem = &HFFFFFFFF
    TxtDDE.LinkMode = 2
    TxtDDE.LinkRequest

    thisParm = 1
    quoting = False
    
    For i = 1 To Len(TxtDDE)
        c = Asc(Mid(TxtDDE, i, 1))
        Select Case c
            Case 34
                quoting = Not quoting
                
            Case 44
                If Not quoting Then
                    thisParm = thisParm + 1
                    If thisParm > 3 Then Exit For
                End If
            Case Else
                If quoting Then
                    parms(thisParm) = parms(thisParm) & Chr(c)
                End If
        End Select
    Next i
    
    url = parms(1)
    title = parms(2)
    framename = parms(3)
    Exit Sub
    
GUBErrHandler:
    MsgBox "Browser not loaded."
    On Error Goto 0
End Sub
         
Sub GetURLfromIE(url As String, title As String)
    Dim c As Byte
    Dim cc As Long
    Dim p As Long
    Dim thisParm As Integer
    Dim parms(2) As String
    Dim quoting As Boolean
    
    On Error Goto GUBErrHandler
    
    TxtDDE.LinkTopic = "iexplore|WWW_GetWindowInfo"
    TxtDDE.LinkItem = &HFFFFFFFF
    TxtDDE.LinkMode = 2
    TxtDDE.LinkRequest
    
    thisParm = 1
    quoting = False
    For i = 1 To Len(TxtDDE)
        c = Asc(Mid(TxtDDE, i, 1))
        Select Case c
            Case 34
                quoting = Not quoting
        
            Case 44
                If Not quoting Then
                    thisParm = thisParm + 1
                    If thisParm > 2 Then Exit For
                End If
            Case Else
                If quoting Then
                    parms(thisParm) = parms(thisParm) & Chr(c)
                End If
        End Select
    Next i
    
    url = parms(1)
    title = parms(2)
    Exit Sub
    
GUBErrHandler:
    MsgBox "Browser not loaded."
    On Error Goto 0
End Sub

Private Sub btn_lesenIE_Click()
    Dim TheUrl As String, TheTitle As String
    
    Call GetURLfromIE(TheUrl, TheTitle)
    TxtIETitle.Text = TheTitle
    TxtIEUrl.Text = TheUrl
End Sub

Private Sub btn_lesenNetscape_click()
    Dim TheUrl As String, TheTitle As String, TheFrame As String
  
    Call GetURLFromNetscape(TheUrl, TheTitle, TheFrame)
    TxtNSTitle.Text = TheTitle
    TxtNSUrl.Text = TheUrl
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 13 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Liesenberg am 07.03.2006 um 08:33

Hallo,

wenn ich den Code in meine Anwendung kopiere erhalte ich den Hinweis das die Variable TxtDDE nicht deklariert ist.
Muss ich noch einen Verweis setzen, oder was habe ich übersehen??

Danke

Kommentar von Tobias am 12.10.2005 um 23:20

funktioniert sogar mit dem Firefox!

cooles Prog :)

Kommentar von Honk am 03.01.2005 um 13:56

Wenn der Internetexplorer nicht offen ist, dann bekomm ich einen Laufzeitfehler den ich dummerweise auch nicht mit "on error resume next" abfangen kann. Wie kann man den Fehler umgehen oder beheben ?

Kommentar von oskar am 25.10.2004 um 14:50

Bei mir stürzt das Programm immer ab. Ich habe win2000, ie6 und vb6- standard. liegt es vielleicht an der vb edition?

Kommentar von Jörg am 03.02.2004 um 08:51

Ich finde den Tip sehr gut,doch kann man mit "Split" viel Quellcode sparen.
Beispiel für IExplore:
Dim parms () as String

parms = Split(TxtDDE,CHR(34))

url = parms(1)
titel = parms(3)

Das heist die ganze For Next Schleife kann wegfallen.

Kommentar von ingo am 30.07.2003 um 14:08

Die DDE-Aufruf muss für Nestacpe ab Version 6 wie flgt geändert werden
Anstatt:
TxtDDE.LinkTopic = "NETSCAPE|WWW_GetWindowInfo"
nun
TxtDDE.LinkTopic = "NETSCAPE6|WWW_GetWindowInfo"

Kommentar von Uli am 27.01.2003 um 04:08

Der Tipp funktioniert bei mir nur mit den älteren Versionen von Netscape (nicht mit Netscape 7) - allerdings mit allen neueren Versionen des IExplorers.

Kommentar von hannes am 04.07.2001 um 13:51

mich würd gern mal interessieren was TxtDDE ist!?

Kommentar von Marcel Karger am 21.05.2001 um 17:18

Das ganze geht auch mit Opera (getestet mit 5.11)!
Einfach "opera|WWW_GetWindowInfo" angeben anstatt iexplore bzw. Netscape!

Kommentar von neumann am 11.03.2001 um 16:07

wie erfahre ich ob es diese email-adresse giebt ??????????
dringend danke
lutz

Kommentar von Armyman am 07.01.2001 um 15:19

Und?
Geht das auch mit Netscape 6?

Kommentar von Julian Scheel am 14.12.2000 um 17:41

erstmal Danke für das Lob! (c;
Aber nun der eigentliche Anlass zu diese Notiz:
Falls jemand weis, ob es auch mit Netscape 6 funzt schickt mir bitte ne mail!
Gruß,
Julian Scheel
ActiveVB

Kommentar von count.negative am 17.11.2000 um 15:09

Bis ich begriffen hab was TxtDDE ist und wie das funktioniert sind einige Minuten ins Land gezogen! Vielleicht könnt ihr dazu noch ein paar Zeilen reinschreiben.
Ansonsten: RESPEKT, das ist ein verdammt guter Tip!