1. Cómo agregar elementos de menú al menú contextual de IE
Los amigos que han usado Netants pueden saber que NetAnts ha agregado una función de menú contextual en IE. Siempre que haga clic derecho en un enlace o imagen en la página y seleccione Down By Netants en el menú, puede llamar a Netants para descargar. el archivo al que apunta el enlace. En este artículo, el autor presentará cómo implementar dicha función a través de VB.
Para implementar la función de agregar elementos de menú al menú contextual de IE, se deben implementar los siguientes pasos en secuencia:
1. Cree un nuevo elemento en el elemento HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt en el registro. El nombre del elemento aparece como título en el menú. Por ejemplo, el título del elemento del menú que desea crear es. Agregue la URL, luego el nombre del nuevo elemento es
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtAgregar URL
2. Establezca el valor predeterminado del nuevo elemento en una dirección URL. Cuando el usuario hace clic en el elemento del menú, IE llamará al script en la página señalada por la URL. En el script de la página de destino, accederá al atributo menuArguments. del objeto externo proporcionado por IE Puede acceder a varios objetos en la página en IE, como enlaces, imágenes, campos de formulario, texto seleccionado, etc. Para obtener ayuda detallada, consulte MSDN sobre el objeto InternetExplore.
Con ayuda, podrá comprender mejor el siguiente script si está familiarizado con el objeto Ventana.
Para el problema de cómo implementar nuestro propio programa para acceder a menuArguments, podemos seguir el enfoque de Netants y primero crear un
Objeto de automatización OLE y luego llame al objeto en el script y pase la información de la página al objeto para su procesamiento. A continuación, primero debemos crear un objeto a través de VB:
Abra VB, haga clic en el menú: Archivo | Nuevo, seleccione ActiveX Dll en la nueva ventana del proyecto y presione la tecla OK para crear una DLL ActiveX.
proyecto. Luego cambie la propiedad Nombre de Class1 a NetAPI en la ventana de lista de proyectos y luego agregue el siguiente código en la ventana de código NetAPI:
Public Sub AddURL (URL como cadena, información como cadena)
Información de MsgBox, vbOKOnly, URL
Subtítulo final
Guarde el archivo y guarde el archivo del proyecto como NetSamp.vbp. Luego seleccione Archivo | Crear NetSamp.dll en el menú para crear la biblioteca de vínculos dinámicos del objeto.
Lo siguiente es la biblioteca de registro. Busque Regsvr32.exe en el directorio de Windows y luego cópielo en el directorio donde se encuentra netsamp.dll.
Arrastre el icono de netsamp.dll a Regsvr32.exe y suéltelo. En este momento, Regsvr32.exe mostrará un cuadro de diálogo que le indicará que el registro del objeto se realizó correctamente.
Abra UltraEdit (u otro editor de texto) e ingrese el siguiente código de secuencia de comandos en el editor:
Sub OnContextMenu()
En caso de error Continuar siguiente
establecer srcEvent = externo.menuArguments.event
establecer EventElement = external.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
establecer objNetSamp=CreateObject("NetSamp.NetAPI")
si srcEvent.type = "MenuExtAnchor" entonces
establecer srcAnchor = ElementoEvento
hacerlo hasta TypeName(srcAnchor)="HTMLAnchorElement"
establecer srcAnchor=srcAnchor.parentElement
Bucle
Llame a objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
elseif srcEvent.type="MenuExtImage" entonces
si TypeName(EventElement)="HTMLAreaElement" entonces
Llame a objNetSamp.AddUrl(EventElement.href,EventElement.Alt)
demás
establecer srcImage = ElementoEvento
establecer srcAnchor = srcImage.parentElement
hacerlo hasta TypeName(srcAnchor)="HTMLAnchorElement"
establecer srcAnchor=srcAnchor.parentElement
si TypeName(srcAnchor)="Nada" entonces
llamar a objNetSamp.AddUrl(srcImage.href,srcImage.Alt)
salir sub
terminar si
Bucle
Llame a objNetSamp.AddUrl(srcAnchor.href, srcImage.Alt)
terminar si
elseif srcEvent.type="MenuExtUnknown" entonces
establecer srcAnchor = ElementoEvento
hacerlo hasta TypeName(srcAnchor)="HTMLAnchorElement"
establecer srcAnchor=srcAnchor.parentElement
si TypeName(srcAnchor)="Nada" entonces
Llame a objNetSamp.AddUrl(EventElement.href,EventElement.innerText)
salir sub
terminar si
Bucle
Llame a objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
terminar si
final sub
callOnContextMenu()
Guarde el archivo en c:program files con el nombre de archivo geturl.htm
Como puede ver en el script anterior, primero acceda a la propiedad external.menuArguments para obtener el objeto donde el usuario hace clic con el botón derecho del mouse, luego obtenga su URL según el objeto, luego cree el objeto IEContextMenu.IEMenu1 y llame al AddURL del objeto. método.
El siguiente paso es crear un elemento de registro para el menú contextual, abrir UltraEdit (u otro editor de texto) e ingresar los siguientes datos de registro en el editor.
Editor del Registro de Windows Versión 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&Get URL]
@="c:\archivos de programa\geturl.htm"
"Contexts"=dword:00000022
Guarde el archivo con reg como sufijo, luego haga doble clic en el archivo en el Explorador de Windows para agregar la clave de registro al registro y luego ábralo.
Es decir, haga clic derecho en un enlace o imagen y aparecerá un elemento Obtener URL en el menú emergente. Haga clic en este elemento y aparecerá un cuadro de mensaje que muestra la dirección URL del enlace o imagen en el que se hizo clic.
Introduzcamos la función del elemento Contextos en el elemento de registro anterior. A través de este elemento, puede especificar qué elemento de menú aparece cuando hace clic derecho en un objeto en IE. Puede ser una combinación "O" de los siguientes valores:
valor del objeto
Predeterminado 0x1
Imagen 0x2
controlar 0x4
Campo de formulario 0x8
Seleccionar texto 0x10
Punto de anclaje 0x20
Por ejemplo, arriba queremos que el elemento del menú aparezca cuando el usuario haga clic en la imagen o hipervínculo, luego configuramos el valor en dword:00000022, lo que significa que el menú aparecerá cuando el usuario haga clic en la imagen o ancla. Un ancla es un objeto en la página que describe un hipervínculo. Si el elemento Contextos no está configurado, los elementos del menú aparecerán en el menú contextual al hacer clic en cualquier objeto.
A través de la introducción del programa anterior, podemos ver el proceso de trabajo del menú contextual del mouse de IE. Como se mencionó anteriormente, Netants usa este método para llamar a NetAnts creando objetos en scripts. Si instalamos NetAnts, podemos llamar a NetAnts en el programa llamando al objeto NetAnts.
Cree un nuevo proyecto, haga clic en el elemento Proyectos | Referencias en el menú y seleccione el elemento Biblioteca de tipos AntAPI 1.0. Si no se hace clic en el botón Navegador, seleccione NetAPI.dll en el directorio Network Ant en el cuadro de lista de archivos y presione Abrir. llave. Agregar un botón de comando en Form1
, agregue el siguiente código en el evento Command1_Click:
Hormiga tenue como nueva ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
Haga clic en comando1, luego se ejecutará NetAnts y 7. HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Cree un nuevo valor de tipo Cadena llamado Clsid y establezca el valor en {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
8. En el registro HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Cree un nuevo valor de tipo Cadena denominado Exec. Este valor define el nombre de ruta completo del archivo que se ejecutará después de hacer clic en el botón, por ejemplo:
c:program filessamplesnet.exe
Por ejemplo, el contenido de la clave de registro del botón NetAnts es el siguiente:
Editor del Registro de Windows versión 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- B792-444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Visible por defecto"="Sí"
"HotIcon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"Icono"="C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"Exec"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
Netants se iniciará cuando se haga clic en el botón NetAnts. Los dos elementos siguientes en la clave de registro anterior: la clave MenuText agrega un elemento de menú a la barra "Herramientas" del menú y la clave MenuStatusBar define el texto del mensaje que se muestra en la barra de estado cuando el cursor se mueve al menú agregado. bar. Además, en el registro
También puedes agregar un archivo llamado
Valor de tipo de cadena de MenuCustomize. Establecer este valor en "Ayuda" hará que el elemento del menú aparezca en la barra de menú "Ayuda"; de lo contrario, aparecerá en la barra "Herramientas".
Por supuesto, no estaremos satisfechos con simplemente agregar un botón y ejecutar un programa. Esperamos poder controlar la página actual cuando el usuario haga clic en el botón, que se encuentra en HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions.
Cree un nuevo valor de tipo Cadena y establezca el nombre en la ruta completa de un archivo html. Igual que agregar un menú contextual introducido anteriormente, IE llamará al archivo después de hacer clic en el botón y accederá a él configurando VBScript en el archivo. archivo. La propiedad menuArguments del objeto externo puede obtener la página en el navegador. Por ejemplo, HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Establezca el valor en c:program filessamp.htm, luego cree un archivo llamado Samp.htm en c:program files e ingrese el siguiente contenido del script en el archivo:
Establecer objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.ubicación.href
Llame a objNetSamp.AddUrl(userURL,"")
Abra el navegador IE, haga clic en el botón Nuevo y aparecerá un cuadro de diálogo para mostrar la URL de la página actual. Tenga en cuenta que este elemento no se puede utilizar al mismo tiempo que el elemento Exec configurado anteriormente.
Finalmente, para los íconos de botones, IE requiere dos tamaños de íconos: 20x20 y 16x16. El primero se usa para mostrar en estado normal y el segundo se usa para mostrar en pantalla completa, por lo que los recursos de íconos señalados por HotIcon e Icon arriba deberían. ser Una combinación de tres íconos Las especificaciones de estos tres íconos son las siguientes:
Ícono de 16 colores de 16x16 (obligatorio)
Ícono de 20x20 y 16 colores (opcional)
Ícono de 20x20 256 colores (obligatorio)
Al diseñar íconos, los íconos de 256 colores deben usar la paleta de medios tonos de Windows, mientras que los íconos de 16 colores deben usar la paleta de 16 colores de Windows.
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html