Herausfinden, welche Internetseite geladen ist?

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Denke mal etwas präzisere Information wäre ganz hilfreich :)

    In Deinem benutzen Standard-Browser (welches Tab), in Deinem benutzten Webbrowser-Control, die Seite die Du mit httpRequest angefordert hast aber evtl. referred wurdest, etc.
    Sowas funktioniert meines Erachtens nach nur zuverlässig wenn Dein Programm als Proxy fungiert und zwangsläufig die Daten in die Hand nimmt. Ansonsten kannst Du höchstens versuchen, ähnlich Programmen wie Wireshark die Karte in den Promicious Mode oder wie das heißt zu schalten und die kompletten Schnittstellen zu überwachen.

    Eine "relativ" simple Möglichkeit wäre nach allen möglichen Browserfenstern Ausschau zu halten und dann über eventuell vorhandene Programmierschnittstellen direkt bei den Browsern anzufragen. Ansonsten fällt mir aber auch nichts mehr ein. So eine Art "windowsweite Liste welche alle zuletzt geöffneten Homepages beinhaltet" gibt es nicht.

    Gruß FatFire
    Wen es interessiert (vermutlich keinen :) ) , hier mal die Liste der mir bekannten Win32 Windows API's :

    Quellcode

    1. ' get windows
    2. Public Declare Function GetParent Lib "user32" (ByVal hWnd As IntPtr) As IntPtr
    3. Public Declare Function GetForegroundWindow Lib "user32" () As IntPtr
    4. Public Declare Function GetDesktopWindow Lib "user32" () As IntPtr
    5. Public Declare Function FindWindow Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    6. Public Declare Auto Function FindWindowEx Lib "user32.dll" (ByVal parentHandle As IntPtr, ByVal childAfter As IntPtr, ByVal className As String, ByVal lpWindowTitle As IntPtr) As IntPtr
    7. Public Declare Function WindowFromPoint Lib "user32" (ByVal pos As Point) As IntPtr
    8. ' get window information
    9. Public Declare Auto Function IsWindow Lib "user32.dll" (ByVal hwnd As IntPtr) As Boolean
    10. Public Declare Auto Function IsIconic Lib "user32.dll" (ByVal hwnd As IntPtr) As Boolean
    11. Public Declare Function GetWindowInfo Lib "user32.dll" (ByVal hwnd As IntPtr, ByRef pwi As WINDOWINFO) As Boolean
    12. Public Declare Auto Function GetWindowText Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal lpString As String, ByVal cch As Integer) As Integer
    13. Public Declare Function GetWindowRect Lib "user32" (ByVal hWnd As IntPtr, ByRef rect As RECT) As IntPtr


    Man kann normalerweise über die FindWindow Funktionen die IE oder Firefox Fenster finden (lpClass), wobei man bedenken muss dass jeder TAB sein eigenes Fenster hat .

    Wenn man Zugriff auf den IE hat, dann bekommt man auch den Zugriff auf das DOM, leider bei Firefox nicht möglich.

    Viel Spass ...

    Edit: warum werden bei mir die Code-Beispiele nicht mehr geparsed ??

    Nachtrag: @FatFire den Promiscous Mode brauchst Du nur um den Datenverkehr im LAN zu verfolgen, und da haut Dir Euer Sys-Admin aber ganz sschnell auf die Finger. Aber den normalen Netzverkehr kann man auch mit Raw Sockets verfolgen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    Edit: warum werden bei mir die Code-Beispiele nicht mehr geparsed ??

    Weil Du Sie in Code-Tags und nicht VB-Tags setzt? (nur so ein Schuss ins Blaue).
    @FatFire den Promiscous Mode brauchst Du nur um den Datenverkehr im LAN zu verfolgen, und da haut Dir Euer Sys-Admin aber ganz sschnell auf die Finger. Aber den normalen Netzverkehr kann man auch mit Raw Sockets verfolgen.

    Okay, ich bin momentan nicht mehr so ganz in der Netzwerkmaterie drin. Irgendwie hatte ich da noch was mit diesem Modus im Hinterkopf. Trivial ist es so oder so nicht (zumindest für VB-Anfänger). Und selbst mit "einfachen" Raw Sockets wirds für den Anwender nicht gerade leicht (braucht Administratorrechte und muss selbst dann manchmal noch einen Registry-Eintrag ändern).

    Gruß FatFire

    Peinlich...

    Nun ja, ich emfinde es als peinlich aber:
    Ich habe mit Windows API überhauptnichts am Hut (0% Ahnung)

    Gibt es jemanden, der vieleicht schonmal einen Befehl geschrieben hat, der die Aktuelle Seite in Firefox ausliest?
    Wenn ja, könnte mir dieser Jemand den Code schicken????????????
    ^^ ^^ ^^

    Ich weis, es ist nicht die schönste Art, nach Code für ein Programm zu fragen, aber ich komme einfach nicht weiter! :cursing: :cursing: :cursing:

    Moder

    Edit:Wer das macht, wird natürlich in den Dankesagungen genant, ist ja klar!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Moder“ ()

    Ich gebe Dir hier mal eine Function, die ich aus einem uralten Projekt rausgekramt hatte. Wenn Du Dich wirklich ernsthaft damit beschäftigen willst, gibt es Dir vielleicht einen Schubs:

    VB.NET-Quellcode

    1. '------------------------------------------
    2. '-- FindWindowsByTitle ---
    3. '------------------------------------------
    4. Public Shared Function FindWindowsByTitle(ByVal title As String, ByVal searchOption As winTitleSearch) As List(Of IntPtr)
    5. Dim hwndList As New List(Of IntPtr)
    6. Dim windowTitle As String
    7. Dim lastPtr As IntPtr = IntPtr.Zero
    8. ' search title in lowercase
    9. title = title.ToLower
    10. ' Search Loop
    11. While True
    12. ' find next window parent=desktop
    13. Dim actPtr As IntPtr = win32API.FindWindowEx(IntPtr.Zero, lastPtr, Nothing, Nothing)
    14. ' end of queue reached ?
    15. If actPtr = Nothing Then Return hwndList Else lastPtr = actPtr
    16. ' found window -> get title
    17. windowTitle = Space(255)
    18. win32API.GetWindowText(actPtr, windowTitle, 255)
    19. Dim pos As Integer = InStr(windowTitle, Chr(0))
    20. If pos > 0 Then windowTitle = windowTitle.Substring(0, (pos - 1)) Else windowTitle = ""
    21. ' check title
    22. If windowTitle = "" Then Continue While
    23. windowTitle = windowTitle.ToLower
    24. Select Case searchOption
    25. Case winTitleSearch.exact
    26. If windowTitle = title Then hwndList.Add(actPtr)
    27. Case winTitleSearch.contains
    28. If windowTitle.Contains(title) Then hwndList.Add(actPtr)
    29. Case winTitleSearch.startsWith
    30. If windowTitle.StartsWith(title) Then hwndList.Add(actPtr)
    31. Case winTitleSearch.endsWith
    32. If windowTitle.EndsWith(title) Then hwndList.Add(actPtr)
    33. Case Else
    34. log.Add(LogLvl.Severe, "invalid Windows search option")
    35. End Select
    36. End While
    37. ' all done
    38. Return hwndList
    39. End Function

    Die Win API's sind weiter oben zu finden ..