Aktives Fenster (Fenstertext ermitteln)

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von bla.

    Aktives Fenster (Fenstertext ermitteln)

    Also ich versuche das Aktive fenster zu ermitteln und es dann in einer textbox oder in einem Label auszugeben.

    Gefunden dazu habe ich schon :

    VB.NET-Quellcode

    1. Declare Function GetForegroundWindow Lib "user32.dll" () As Integer


    wenn ich jetzt zb

    VB.NET-Quellcode

    1. Dim k As Integer
    2. k = GetForegroundWindow.ToString
    3. Label1.Text = k


    wenn ich das in einen Timer schriebe werden mir Zahlen ausgegeben.
    So gut ist.
    Doch wie kann ich den Richtigen namen des aktiven Fensters ermitteln?
    ich habe dazu GetWindowText gefunden doch schaffe ich es leider nicht das umzusetzen.

    VB.NET-Quellcode

    1. Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long


    Doch verstehe ich nicht genau wie ich damit den text des fensters ermitteln soll....
    Das was ich bis jetzt bei google gefunden habe hat mir leider noch nicht geholfen
    GetForegroundWindow liefert dir das Windowhandle zurück, also das was bei net das Me.Handle ist
    Dieses Handle mußt du dann an GetWindowText übergeben.
    Mit GetWindowTextLength kannst du ermitteln wieviel Platz du für GetWindowText brauchst.

    VB.NET-Quellcode

    1. Private Sub X()
    2. MsgBox(GetTextFromWindow(GetForegroundWindow))
    3. End Sub
    4. Private Declare Function GetForegroundWindow Lib "user32" () As IntPtr
    5. Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As IntPtr, ByVal lpString As String, ByVal cch As Integer) As Integer
    6. Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As IntPtr) As Integer
    7. Private Function GetTextFromWindow(ByVal hwnd As IntPtr) As String
    8. '// gibt den Text des Windows zurück
    9. Dim strBuffer As String
    10. Dim intLen As Integer
    11. intLen = GetWindowTextLength(hwnd) + 1
    12. strBuffer = Space$(intLen)
    13. GetWindowText(hwnd, strBuffer, intLen)
    14. Return = Replace(strBuffer, Chr(0), "")
    15. End Function