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.628 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
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. |