Red de conocimiento informático - Conocimiento sistemático - Problema: Excel VBA ejecuta una página web ya abierta.

Problema: Excel VBA ejecuta una página web ya abierta.

Preparación: 1. Abra Baidu con IE.

2. Llame a la función GetIE

El código busca la ventana de IE cuyo título contiene Baidu, luego controla para abrir hao123 y finalmente la guarda como c:\myhtml.txt.

¿Opciones? ¿Explícito

? El proyecto debe hacer referencia a "¿Microsoft? ¿HTML? ¿Objeto? Biblioteca"

¿Privado? ¿tipo? UUID

¿Datos1? ¿Como? Largo

¿Datos 2? ¿Como? Entero

¿Datos 3? ¿Como? Entero

Datos4(0? ¿Dónde? 7)? Byte

¿Fin? Tipo

¿Privado? ¿declarar? ¿Función? ¿Obtener texto de ventana? ¿Lib? ¿"Usuario 32"? ¿Alias? ¿"GetWindowTextA"? (¿ByVal?hWnd?como?dragón,?ByVal?lpString?como?cadena,?ByVal?cch?como?dragón)? ¿Como? Largo

¿Privado? ¿declarar? ¿Función? ObtenerWindowTextLength? ¿Lib? ¿"Usuario 32"? ¿Alias? ¿"GetWindowTextLengthA"? (¿PorVal?hWnd?As?Dragon)? ¿Como? Largo

¿Privado? ¿declarar? ¿Función? ¿Obtener nombre de clase? ¿Lib? ¿"Usuario 32"? _

¿Alias? ¿"ObtenerNombreClaseA"? (?_

ByVal?hWnd?As?Dragon,?_

ByVal?lpClassName?As?String,?_

ByVal?nMaxCount?As ? dragón)? ¿Como? Largo

¿Privado? ¿declarar? ¿Función? EnumWindows? ¿Lib? ¿"Usuario 32"? (ByVal?lpEnumFunc?as?dragon,?ByVal?lParam?as?dragon)? ¿Como? Sistema de álgebra booleana

¿Privado? ¿declarar? ¿Función? EnumChildWindows? ¿Lib? ¿"Usuario 32"? (¿ByVal?hWndParent?como?dragón,?ByVal?lpEnumFunc?como?dragón,?lParam?como?dragón)? ¿Como? Largo

¿Privado? ¿declarar? ¿Función? ¿Registrar mensaje de ventana? ¿Lib? ¿"Usuario 32"? _

¿Alias? ¿"RegisterWindowMessageA"? (?__

¿PorVal?lpString?como?String)? ¿Como? Largo

¿Privado? ¿declarar? ¿Función? ¿Tiempo de espera para enviar mensaje? ¿Lib? ¿"Usuario 32"? _

¿Alias? ¿"Enviar mensajeTimeoutA"? (?_

ByVal?hWnd?As?Dragon,?_

ByVal?MSG?As?Dragon,?_

ByVal?wParam?As? _

lParam? _

,? _

lpdwResultado? ¿Como? Largo

¿Privado? ¿Constante? ¿Aborto SMTO? =?ampDeuterium

¿Privado? ¿declarar? ¿Función? ¿Objeto de resultado? ¿Lib? "L'Oreal"(?_

ByVal?lResult?As?Dragon,?_

riid?As?UUID?_

ByVal?wParam? ¿Como ?dragón,?_

ppvObjeto? ¿Como? Largo

¿Oscuro? ¿IEhwnd? ¿Como? Largo

¿Oscuro? ¿Servidor IE? ¿Como? ¿Largo

? IEDOMFromhWnd

'

? devolver la mercancía? ¿eso? ¿Documento IHTML? ¿interfaz? ¿De donde? ¿respuesta? ¿Navegador web? Windows

? ¿Qué pasa? -?¿ventana? ¿manejar? ¿de? ¿eso? ¿Controlar la función

? IEDOMFromhWnd()? ¿Como? IHTMLDocument

¿Atenuado? ¿Documento IID_ihtml? ¿Como? UUID

¿Atenuado? ¿Qué pasa? ¿Como? Largo

¿Oscuro? ¿Res? ¿Como? Largo

¿Oscuro? ¿Mensaje? ¿Como? Largo

¿Oscuro? ¿HORA? ¿Como? ¿Largo

? ¿Descubrir? ¿respuesta? ¿niño? ¿ES DECIR? ¿servidor? Windows

EnumWindows? ¿DIRECCIÓN? EnumWindowProc? ¿Por Val? 0

¿Y si? ¿IEhwnd? ¿Entonces qué? EnumChildWindows? ¿IEhwnd? ¿DIRECCIÓN? EnumChildProc,? ¿PorVal? 0

¿Y si? ¿Servidor IE? ¿Entonces qué? ¿Qué pasa? =?IEServidor? ¿De lo contrario? ¿abandonar? Función

? ¿registro? ¿eso? Mensaje

l¿Mensaje? =?RegisterWindowMessage(" WM _ HTML _ GETOBJECT ")

? ¿conseguir? ¿eso? ¿Objeto? Puntero

¿Llamar? SendMessageTimeout(hWnd, lMsg, ?0, ?0, ?_

¿Aborto SMTO? 1000, ?lRes)

¿Si? ¿Res? ¿Entonces

? inicialización? ¿eso? ¿interfaz? Prueba de identidad

¿Qué utilizar? IID_ihtmldocument

.Data1? =? ampH626FC520

. =? ampHA41E

. =? ampH11CF

. =? ampHA7

. =? ampH31

. =? hipótesis nula

. =? amp ha 0

. =? ampHC9

. =? ampH8

. =? ampH26

. =? ampH37

¿Fin? ¿Con

? ¿conseguir? ¿eso? ¿Objeto? ¿De donde? lRes

hr? =?ObjectFromLresult(lRes,IID_IHTMLDocument,?0,?IEDOMFromhWnd)

¿Fin? Si

¿Finalizar? Función

¿Privada? ¿Función? ¿EsIEServerWindow(ByVal?hWnd?As?Dragon)? ¿Como? ¿El sistema de álgebra booleana

es oscuro? ¿Res? ¿Como? Largo

¿Oscuro? sNombreClase? ¿Como? Línea

sNombreClase? =?GetClsName(hWnd)

¿EsIEServerWindow? =?StrComp(sClassName,"Internet?Explorer_Server",?vbTextCompare)? =?0

¿Fin? Función

Nombre de clase de ventana de retorno

¿Pública? ¿Función? GetClsName(ByVal?hWnd?As?Dragon)? ¿Como? Línea

¿Oscura? Res?

¿Como? Largo

¿Oscuro? sNombreClase? ¿Como? Línea

sNombreClase? =?Cadena$(200,?0)

lRes? =?GetClassName(hWnd,sClassName,?Len(sClassName))

GetClsName? =?Izquierda$(sClassName,lRes)

¿Fin? Función

Título de la ventana de retorno

¿Público? ¿Función? GetWinTitle(ByVal?lhWnd?as?dragon)? ¿Como? Línea

¿Oscura? ¿Mi cadena? ¿Como? Línea

MyStr? =?String(200,?Chr$(0))

GetWindowText? lhWnd? MiStr,? 200

¿ObtenerWinTitle? =?Left(MyStr,?InStr(MyStr,Chr$(0))?-?1)

¿Fin? Función

¿Función? EnumWindowProc(ByVal?hWnd?as?dragon,?ByVal?lParam?as?dragon)? ¿Como? Largo

¿Oscuro? ¿Título SIE? ¿Como? Línea

sIEtítulo? =?GetWinTitle(hWnd)

¿Si? InStr(1,?sIEtitle,?"Baidu")? Utilice Baidu para buscar ventanas en el título.

¿IEhwnd? =?hWnd

Otro

EnumWindowProc? =?1

¿Fin? Si

¿Finalizar? Función

¿Función? enumchilproc(ByVal?hWnd?as?dragon,?lParam?as?dragon)? ¿Como? Largo

¿Y si? ¿EsIEServerWindow(hWnd)? Entonces

¿IEServer? =?hWnd

Otro

EnumChildProc? =?1

¿Fin? Si

¿Finalizar? Función

¿Función? ObtenerIE()? ¿Como? Largo

¿Oscuro? doctor. ¿Como? IHTMLDocument2

¿Atenuado? ¿s? ¿Como? Línea

¿Configuración? doctor. =?IEDOMFromhWnd

¿Si? ¿No es así? doctor. ¿Sí? ¿Nada? Entonces

¿Doc.url? =?""?Abrir la página web

¿Qué hacer? ¿hasta? Doc.readyState? =?"Completa"

Múltiples actividades

Anillos

s? =?Document.Text.innerHTML

¿Abrir? ¿"c:\mihtml.txt"? ¿para qué? ¿Producción? ¿Como? #1

¿Imprimir? #1,?s

Cerrar

¿finalizar? Si

¿Finalizar? Función