Pregunte a los expertos de VB cómo desenfocar los identificadores de las ventanas de búsqueda
I. Cree un módulo y copie el siguiente código en el módulo:
Opción explícita
Declarar función GetDesktopWindow Lib "user32 " ( ) Mientras
Declarar la función GetWindow Lib "user32" (ByVal hwnd As Long.) Mientras, ByVal wCmd Mientras) Mientras
Declarar la función GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String, ByVal cch As Long) _
As Long
Public Const GW_CHILD = 5 p>
Const pública GW_HWNDNEXT = 2
Función pública GetOpenWindowNames(Título como cadena) Como cadena
Dim lngDeskTopHandle As Long
Dim lngHand As Long, i As Long, S As String
Dim strName As String * 255
Dim lngWindowCount As Long
lngDeskTopHandle = GetDesktopWindow ()
lngHand = GetWindow(lngDeskTopHandle, GW_CHILD)
lngWindowCount = 1
Hacer mientras lngHand lt 0
i = GetWindowText( lngHand, strName, Len(strName) )
S = Left(strName, i)
If InStr(1, S, Title, vbTextCompare) gt 0 Then 'Fuzzy Find
<; p> GetOpenWindowNames = SSalir de la función
Finalizar si
lngHand = GetWindow(lngHand, GW_HWNDNEXT)
Bucle
Función final
Esta es la primera vez que se llama al programa. p> 2. Ejemplo de llamada al programa:
Búsqueda difusa de títulos como "Nuevo":
dim S como cadena
s = GetOpenWindowNames ("Nuevo")
El valor de retorno s es el resultado de la búsqueda.