vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Textbox aus externer Anwendung auslesen 
Autor: Anton_S
Datum: 04.04.10 17:49

Hallo GPM

das Demo2 gefällt mir super. Bin gerade ein bisschen am spielen.
Hab den Button enfernt. Der war ja nur zum testen.
Jetzt schaude der Code so aus

Imports System.Runtime.InteropServices, System.Text
Public Class Form1
    Declare Auto Function SendMessage Lib "user32" (ByVal hWnd As IntPtr, ByVal _
      Msg As Int32, ByVal wParam As Int32, ByVal lParam As StringBuilder) As _
      Int32
    Declare Function EnumChildWindows Lib "user32" (ByVal hWnd As IntPtr, ByVal _
    Callback As EnumWinProc, ByVal lParam As IntPtr) As Boolean
    Declare Function GetForegroundWindow Lib "user32" () As IntPtr
    'Private WithEvents Btn As New Button With {.Dock = DockStyle.Bottom, .Text 
    ' = "MsgBox-Show", .Parent = Me}
    Private WithEvents T As New Timer With {.Interval = 1000}
    Delegate Function EnumWinProc(ByVal hWnd As IntPtr, ByVal Param As IntPtr) _
      As Boolean
    Const WM_GETTEXT As Int32 = &HD
 
    'Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As  _
    ' System.EventArgs) Handles Btn.Click
    '    T.Start()
    '    MessageBox.Show("Die Nummer (001315) ist gemeldet", "Info", _
    '    MessageBoxButtons.OK, MessageBoxIcon.Stop)
    ' End Sub
 
    Private Sub T_Tick(ByVal sender As Object, ByVal e As System.EventArgs) _
      Handles T.Tick
        Dim hfw = GetForegroundWindow
        If hfw <> Me.Handle Then
            Dim sb As New StringBuilder(256)
            SendMessage(hfw, WM_GETTEXT, sb.Capacity, sb)
            If sb.ToString = "Info" Then
                Dim hnd() = GetChildWindows(hfw) 'Demo= 4, 2x Btn + Icon + Text 
                SendMessage(hnd(3), WM_GETTEXT, sb.Capacity, sb)
                Dim txt As String = sb.ToString.Split("("c, ")"c)(1)
                SendKeys.Send("{Enter}")
                'Me.Text = txt  'bzw My.Computer.Clipboard.SetText(txt)
                My.Computer.Clipboard.SetText(txt)
            End If
        End If
    End Sub
 
    Private Function GetChildWindows(ByVal hnd As IntPtr) As IntPtr()
        Dim childlist As New List(Of IntPtr), gh = GCHandle.Alloc(childlist)
        EnumChildWindows(hnd, AddressOf EnumWindows, GCHandle.ToIntPtr(gh))
        gh.Free()
        Return childlist.ToArray
    End Function
 
    Private Function EnumWindows(ByVal Handle As IntPtr, ByVal param As IntPtr) _
      As Boolean
        Dim ptrlist = CType(GCHandle.FromIntPtr(param).Target, List(Of IntPtr))
        ptrlist.Add(Handle)
        Return True
    End Function
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        T.Start()
    End Sub
End Class
Leider bleibt er in dieser Zeile hängen

 SendMessage(hnd(3), WM_GETTEXT, sb.Capacity, sb)
IndexOutOfRangeException wurde nicht behandelt.

Wie bekomme ich diesen fehler noch weg ?

Mfg
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textbox aus externer Anwendung auslesen2.793Anton_S01.04.10 21:03
Re: Textbox aus externer Anwendung auslesen1.624Manfred X01.04.10 22:49
Re: Textbox aus externer Anwendung auslesen1.668GPM01.04.10 23:55
Re: Textbox aus externer Anwendung auslesen1.574Manfred X02.04.10 03:05
Re: Textbox aus externer Anwendung auslesen1.579Anton_S02.04.10 17:02
Re: Textbox aus externer Anwendung auslesen1.584Manfred X02.04.10 17:52
Re: Textbox aus externer Anwendung auslesen1.683GPM02.04.10 18:03
Re: Textbox aus externer Anwendung auslesen1.535Anton_S02.04.10 18:26
Re: Textbox aus externer Anwendung auslesen1.540Anton_S02.04.10 18:30
Re: Textbox aus externer Anwendung auslesen1.522GPM02.04.10 21:48
Re: Textbox aus externer Anwendung auslesen1.572GPM03.04.10 16:55
Re: Textbox aus externer Anwendung auslesen1.579Anton_S04.04.10 17:49
Re: Textbox aus externer Anwendung auslesen1.561GPM04.04.10 18:25
Re: Textbox aus externer Anwendung auslesen1.481Anton_S04.04.10 18:58
Re: Textbox aus externer Anwendung auslesen1.471GPM04.04.10 19:49
Re: Textbox aus externer Anwendung auslesen1.612Anton_S05.04.10 10:03
Re: Textbox aus externer Anwendung auslesen1.518keco05.04.10 10:13
Re: Textbox aus externer Anwendung auslesen1.562GPM05.04.10 10:27
Re: Textbox aus externer Anwendung auslesen1.495Anton_S05.04.10 17:35

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel