Red de conocimiento informático - Conocimiento informático - Cómo obtener el número de ventanas de IE abiertas (vc)

Cómo obtener el número de ventanas de IE abiertas (vc)

Mi idea es usar la función API EnumWindows para enumerar todos los identificadores de ventanas y luego usar GetClassName para obtener el nombre de clase del identificador; si es un IEFrame, considérelo una ventana de IE. El código es el siguiente:

Private Sub cmdGetIEWindowCount_Click()

IEWindowCount = 0

Me.AutoRedraw = True

EnumWindows AddressOf EnumWindowsProc , ByVal 0amp

MsgBox "Un **** encontrado" amp; CStr(IEWindowCount) amp; "Una ventana de IE"

End Sub

' --- --------------- Contenido del módulo ---' -----------------------

IEWindowCount público como entero

Declarar la función EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) como booleano

Declarar la función GetClassName Lib "user32" Alias ​​"GetClassNameA" ( ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount ByVal nMaxCount As Long)

Función pública EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean

Atenuar lpClassName como cadena, RetVal siempre

lpClassName = Space(256)

RetVal = GetClassName(hwnd, lpClassName, 256)

Si Left$(lpClassName, RetVal) = "IEFrame" Entonces

IEWindowCount = IEWindowCount 1

Fin

EnumWindowsProc = True

Función final

Agregado: Lo siento, pensé que era VB, puedes modificarlo tú mismo.

EnumWindowsProc = True

Finalizar función