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.534 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. |
Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access 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 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |