Thema Datum  Von Nutzer Rating
Antwort
Rot Systree - Absturz bei Zugriff auf Knoten (externes Programm)
03.02.2025 13:12:07 Gast98551
NotSolved
03.02.2025 19:04:25 Gast75772
NotSolved
03.02.2025 20:39:14 volti
NotSolved
04.02.2025 12:30:20 Gast19586
NotSolved
04.02.2025 14:08:15 Volti
NotSolved
04.02.2025 15:28:04 Gast67987
NotSolved
04.02.2025 15:58:49 Gast31143
NotSolved
04.02.2025 16:59:30 Gast39622
NotSolved
04.02.2025 18:12:20 volti
NotSolved
04.02.2025 18:25:46 volti
NotSolved
04.02.2025 19:13:41 volti
NotSolved
04.02.2025 22:38:12 Gast85035
NotSolved
04.02.2025 23:25:24 volti
NotSolved
05.02.2025 00:38:44 Gast32890
NotSolved
05.02.2025 08:42:33 volti
NotSolved
05.02.2025 08:56:36 volti
NotSolved
09.02.2025 21:57:35 Gast46537
NotSolved
05.02.2025 13:33:01 Gast89171
NotSolved
05.02.2025 15:04:45 Gast15904
NotSolved
09.02.2025 18:13:22 Gast6908
Solved

Ansicht des Beitrags:
Von:
Gast98551
Datum:
03.02.2025 13:12:07
Views:
197
Rating: Antwort:
  Ja
Thema:
Systree - Absturz bei Zugriff auf Knoten (externes Programm)

Hallo zusammen.

Ich versuche über die Windows API auf Fensterinhalte zuzugreifen. Beim Versuch den Systree32 auszulesen schliesst sich das Programm.
Kann mir jemand helfen, wie ich rausfinden kann, ob das Programm abstürzt oder ob es sich schliesst. Bzw. warum der Zugriff nicht klappt.

Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" ( _
    ByVal hWnd As LongPtr, _
    ByVal Msg As Long, _
    ByVal wParam As LongPtr, _
    ByVal lParam As LongPtr) As LongPtr

Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" ( _
    ByVal hWnd As LongPtr, _
    ByVal Msg As Long, _
    ByVal wParam As LongPtr, _
    ByVal lParam As LongPtr) As LongPtr

Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByVal Destination As Any, _
    ByVal Source As Any, _
    ByVal Length As Long)

Const TV_FIRST As Long = &H1100
Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Const TVM_GETITEM As Long = (TV_FIRST + 12)
Const TVGN_ROOT As Long = &H0
Const TVGN_NEXT As Long = &H1
Const TVIF_TEXT As Long = &H1

Type TVITEM
    mask As Long
    hItem As LongPtr
    state As Long
    stateMask As Long
    pszText As LongPtr
    cchTextMax As Long
    iImage As Long
    iSelectedImage As Long
    cChildren As Long
    lParam As LongPtr
End Type

Sub DebugTreeViewPostMessage()
    Dim hWndTree As LongPtr
    Dim hItem As LongPtr
    Dim tvItem As TVITEM
    Dim buffer As String * 256
    Dim result As LongPtr

    ' ** HANDLE ANPASSEN **
    hWndTree = 198710 ' SysTreeView32 Handle
    If hWndTree = 0 Then
        MsgBox "Kein gültiges TreeView-Handle gefunden!"
        Exit Sub
    End If

    ' Root-Knoten abrufen
    hItem = PostMessage(hWndTree, TVM_GETNEXTITEM, TVGN_ROOT, ByVal 0&) '=> hier schliesst sich das Programm
    If hItem = 0 Then
        MsgBox "Kein Root-Knoten gefunden."
        Exit Sub
    End If

    ' Schleife durch die Knoten
    Do While hItem <> 0
        ' TVITEM initialisieren
        With tvItem
            .mask = TVIF_TEXT
            .hItem = hItem
            .pszText = StrPtr(buffer)
            .cchTextMax = Len(buffer)
        End With

        ' Knoteninformationen abrufen
        result = PostMessage(hWndTree, TVM_GETITEM, 0, ByVal VarPtr(tvItem))
        If result <> 0 Then
            ' Knoteninformationen anzeigen
            Debug.Print "Handle: " & hItem
            Debug.Print "Text: " & Left(buffer, InStr(buffer, vbNullChar) - 1)
        Else
            Debug.Print "Fehler beim Abrufen des Knotens: " & hItem
        End If

        ' Nächsten Knoten abrufen
        hItem = PostMessage(hWndTree, TVM_GETNEXTITEM, TVGN_NEXT, hItem)
    Loop

    MsgBox "Fertig! Ergebnisse wurden im Debug-Fenster ausgegeben."
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Systree - Absturz bei Zugriff auf Knoten (externes Programm)
03.02.2025 13:12:07 Gast98551
NotSolved
03.02.2025 19:04:25 Gast75772
NotSolved
03.02.2025 20:39:14 volti
NotSolved
04.02.2025 12:30:20 Gast19586
NotSolved
04.02.2025 14:08:15 Volti
NotSolved
04.02.2025 15:28:04 Gast67987
NotSolved
04.02.2025 15:58:49 Gast31143
NotSolved
04.02.2025 16:59:30 Gast39622
NotSolved
04.02.2025 18:12:20 volti
NotSolved
04.02.2025 18:25:46 volti
NotSolved
04.02.2025 19:13:41 volti
NotSolved
04.02.2025 22:38:12 Gast85035
NotSolved
04.02.2025 23:25:24 volti
NotSolved
05.02.2025 00:38:44 Gast32890
NotSolved
05.02.2025 08:42:33 volti
NotSolved
05.02.2025 08:56:36 volti
NotSolved
09.02.2025 21:57:35 Gast46537
NotSolved
05.02.2025 13:33:01 Gast89171
NotSolved
05.02.2025 15:04:45 Gast15904
NotSolved
09.02.2025 18:13:22 Gast6908
Solved