Rubrik: Controls · ListBox | VB-Versionen: VB4, VB5, VB6 | 30.07.04 |
ListBox von Fremdanwendungen auslesen Dieser Tipp verrät, wie sich der Inhalt einer Standard-ListBox einer beliebigen (Fremd-)Anwendung auslesen lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 13.664 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nachfolgender Tipp verrät, wie sich der gesamte Inhalt einer Standard-ListBox einer beliebigen (Fremd-)Anwendung auslesen lässt.
Voraussetzung ist allerdings, dass das Fensterhandle der ListBox bekannt ist.
Option Explicit ' Benötigte API-Deklarationen Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function SendMessageStr Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As String) As Long Private Const LB_GETCOUNT = &H18B Private Const LB_GETTEXT = &H189 Private Const LB_GETTEXTLEN = &H18A
' Per Buttonclick den Inhalt der ListBox der ' (Fremd-)Anwendung in eine eigene ListBox übertragen Private Sub Command1_Click() Dim nCount As Long Dim i As Long Dim sText As String Dim nLen As Long ' Anzahl der ListBox-Einträge ermitteln nCount = SendMessage(hwndListBox, LB_GETCOUNT, 0, CLng(0)) ' alle Einträge durchlaufen For i = 0 To nCount - 1 ' Textlänge des ListBox-Eintrags ermitteln nLen = SendMessage(hwndListBox, LB_GETTEXTLEN, i, 0) If nLen > 0 Then ' Text des ListBox-Eintrags auslesen sText = String$(nLen, 0) SendMessageStr hwndListBox, LB_GETTEXT, i, sText ' Eintrag in eigene ListBox einfügen List1.AddItem sText End If Next i End Sub