| | Awarded by Microsoft since 2005: |  |
| | VBOffice Info | | Besucher | 1391984 | | Aufrufe | 5099544 |
| |
|
| |
| Autor: Michael Bauer | Homepage | | Datum: 05.02.2006 | Zugriffe: 21417 | | | | Beschreibung
Das Beispiel ermittelt eine
Fensterzugriffsnummer (Handle) anhand des Fenstertitels (Caption-Eigenschaft)
unterhalb eines angegebenen Fensters. Wenn Sie ein Fenster auf der
obersten Ebene suchen wollen, dann rufen Sie zuerst die Funktion
GetDesktopWindow auf und übergeben das Ergebnis der Funktion
FindChildWindowText im Argument lHnd. Sie können aber auch
das Handle jedes beliebigen anderen Fensters übergeben, unterhalb dessen
Sie suchen möchten. Groß-/Kleinschreibung wird nicht
unterschieden; Sie können in sFind den exakten Titel
übergeben oder einen Teilstring mit Asterisk (*). |
Option Explicit
Private Declare Function GetWindow Lib "user32" _
(ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowTextA Lib "user32" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetDesktopWindowA Lib "user32" _
Alias "GetDesktopWindow" () As Long
Const GW_HWNDNEXT = 2
Const GW_CHILD = 5
Public Function GetDesktopWindow() As Long
GetDesktopWindow = GetDesktopWindowA
End Function
Public Function FindChildWindowText(ByVal lHwnd As Long, _
sFind As String _
) As Long
Dim lRes As Long
Dim sFindLC As String
lRes = GetWindow(lHwnd, GW_CHILD)
If lRes Then
sFindLC = LCase$(sFind)
Select Case InStr(sFindLC, "*")
Case Is > 0
Do
If LCase$(GetWindowText(lRes)) Like sFindLC Then
FindChildWindowText = lRes
Exit Function
End If
lRes = GetWindow(lRes, GW_HWNDNEXT)
Loop While lRes <> 0
Case Else
Do
If LCase$(GetWindowText(lRes)) = sFindLC Then
FindChildWindowText = lRes
Exit Function
End If
lRes = GetWindow(lRes, GW_HWNDNEXT)
Loop While lRes <> 0
End Select
End If
End Function
Private Function GetWindowText(ByVal lHwnd As Long) As String
Const STR_SIZE As Long = 256
Dim sBuffer As String * STR_SIZE
Dim lSize As Long
sBuffer = String$(STR_SIZE, vbNullChar)
lSize = GetWindowTextA(lHwnd, sBuffer, STR_SIZE)
If lSize > 0 Then
GetWindowText = left$(sBuffer, lSize)
End If
End Function
|
| | |
| | |  | ReplyAll warnt Sie, bevor Sie unbeabsichtigt allen Empfängern
einer E-Mail antworten oder wenn Sie ein vertraulicher BCC-Empfänger der E-Mail ... [weiter] |
| | |  | Blitzschneller Zugriff auf die Hauptkategorienliste, gemeinsame Kategorien im Netzwerk, eine Erinnerungsfunktion ... [weiter] |
| | |  | SAM legt automatisch Absender, Signatur und Speicherort für gesendete Mails fest, z.B. anhand der ... [weiter] |
| | |  | OLKeeper verhindert zuverlässig, dass Mitarbeiter Outlook schließen und dadurch Termine oder E-Mails ... [weiter] |
| | |
|