Unser heutiger Tipp zeigt, wie sich der Inhalt einer TextBox, die Beschriftung einer Schaltfläche, der ausgewählte Eintrag einer ComboBox und und und... auslässen lässt - egal, in welchem Fenster und egal in welcher Anwendung sich das Control befindet. Man fährt einfach mit dem Mauszeiger auf das gewünschte Control - und schon wird der Fenstertext ermittelt. Und so funktioniet's: Anhand der aktuellen Mausposition ermitteln wir das Fenster-Handle des Conrols, über welches sich der Mauszeiger gerade befindet. Über die universelle SendMessage API-Funktion wird dann der Fenstertext des Controls ausgelesen und in einem Label unserer Form angezeigt. Beispielprojekt Erstellen Sie ein neues Projekt und plazieren Sie folgende Control auf die Form: tmrTimer (Timer) Fügen Sie jetzt noch den nachfolgende Code in den Codeteil der Form ein: Option Explicit ' zunächst die benötigten API-Deklarationen Private Type POINTAPI x As Long y As Long End Type Private Declare Function GetCursorPos Lib "user32" ( _ lpPoint As POINTAPI) As Long Private Declare Function WindowFromPoint Lib "user32" ( _ ByVal xPoint As Long, _ ByVal yPoint As Long) As Long Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Const WM_GETTEXT = &HD Private Sub Form_Load() ' Timer initialisieren tmrTimer.Interval = 10 tmrTimer.Enabled = False End Sub Private Sub cmdStart_Click() tmrTimer.Enabled = Not tmrTimer.Enabled cmdStart.Caption = IIf(tmrTimer.Enabled, "Stop", "Start") End Sub Private Sub tmrTimer_Timer() Dim oPoint As POINTAPI Dim hWnd As Long Dim lLength As Long Dim sWindowText As String * 255 ' Mausposition ermitteln If GetCursorPos(oPoint) <> 0 Then ' Fensterhandle des Controls, auf dem sich ' der Mauszeiger befindet hWnd = WindowFromPoint(oPoint.x, oPoint.y) ' Fenstertext des Controls ermitteln lLength = SendMessage(hWnd, WM_GETTEXT, _ Len(sWindowText) + 1, ByVal sWindowText) ' Handle anzeigen lblHandle.Caption = hWnd ' Mausposition anzeigen lblPos.Caption = "x " & oPoint.x & " y " & oPoint.y ' Fenstertext anzeigen lblWindowText.Caption = Left(sWindowText, lLength) End If End Sub Dieser Tipp wurde bereits 34.532 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||||||
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. |