1. Comment ajouter des éléments de menu au menu contextuel d'IE
Les amis qui ont utilisé Netants savent peut-être que NetAnts a ajouté une fonction de menu contextuel dans IE. Tant que vous cliquez avec le bouton droit sur un lien ou une image de la page et sélectionnez Down By Netants dans le menu, vous pouvez appeler Netants pour télécharger. le fichier pointé par le lien. Dans cet article, l'auteur présentera comment implémenter une telle fonction via VB.
Pour implémenter la fonction d'ajout d'éléments de menu au menu contextuel d'IE, les étapes suivantes doivent être implémentées dans l'ordre :
1. Créez un nouvel élément sous l'élément HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt dans le registre. Le nom de l'élément apparaît comme titre dans le menu. Par exemple, le titre de l'élément de menu que vous souhaitez créer est. Ajoutez une URL, puis le nom du nouvel élément est
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtAjouter une URL
2. Définissez la valeur par défaut du nouvel élément sur une adresse URL Lorsque l'utilisateur clique sur l'élément de menu, IE appellera le script dans la page pointée par l'URL. Dans le script de la page cible, accédez à l'attribut menuArguments. de l'objet externe fourni par IE Vous pouvez accéder à divers objets dans la page dans IE, tels que des liens, des images, des champs de formulaire, du texte sélectionné, etc. Pour une aide détaillée, veuillez vous référer à MSDN à propos de l'objet InternetExplore
Avec de l'aide, vous pourrez mieux comprendre le script suivant si vous êtes familier avec l'objet Window.
Pour le problème de savoir comment implémenter notre propre programme pour accéder à menuArguments, nous pouvons suivre l'approche de Netants et créer d'abord un
OLE Automation, puis appelez l'objet dans le script et transmettez les informations de page à l'objet pour traitement. Ensuite, nous devons d'abord créer un objet via VB :
Ouvrez VB, cliquez sur le menu : Fichier | Nouveau, sélectionnez Dll ActiveX dans la fenêtre du nouveau projet et appuyez sur la touche OK pour créer une DLL ActiveX.
projet. Modifiez ensuite la propriété Name de Class1 en NetAPI dans la fenêtre de liste de projets, puis ajoutez le code suivant dans la fenêtre de code NetAPI :
Public Sub AddURL (URL sous forme de chaîne, informations sous forme de chaîne)
Informations MsgBox, vbOKOnly, URL
Fin du sous-marin
Enregistrez le fichier et enregistrez le fichier de projet sous NetSamp.vbp. Sélectionnez ensuite Fichier | Créer NetSamp.dll dans le menu pour créer la bibliothèque de liens dynamiques d'objets.
Vient ensuite la bibliothèque d'enregistrement. Recherchez Regsvr32.exe dans le répertoire Windows, puis copiez-le dans le répertoire où se trouve netsamp.dll.
Faites glisser l'icône de netsamp.dll sur Regsvr32.exe et relâchez-le. À ce moment, Regsvr32.exe affichera une boîte de dialogue vous informant que l'enregistrement de l'objet a réussi.
Ouvrez UltraEdit (ou un autre éditeur de texte) et entrez le code de script suivant dans l'éditeur :
<script langage="VBScript">
Sub OnContextMenu()
En cas d'erreur, reprendre ensuite
set srcEvent = external.menuArguments.event
set EventElement = external.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
définir objNetSamp=CreateObject("NetSamp.NetAPI")
si srcEvent.type = "MenuExtAnchor" alors
définir srcAnchor = EventElement
faire jusqu'à ce que TypeName(srcAnchor)="HTMLAnchorElement"
définir srcAnchor=srcAnchor.parentElement
Boucle
Appelez objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
sinon si srcEvent.type="MenuExtImage" alors
si TypeName(EventElement)="HTMLAreaElement" alors
Appelez objNetSamp.AddUrl (EventElement.href, EventElement.Alt)
autre
définir srcImage = EventElement
définir srcAnchor = srcImage.parentElement
faire jusqu'à ce que TypeName(srcAnchor)="HTMLAnchorElement"
définir srcAnchor=srcAnchor.parentElement
si TypeName(srcAnchor)="Rien" alors
appelez objNetSamp.AddUrl(srcImage.href,srcImage.Alt)
quitter le sous
finir si
Boucle
Appelez objNetSamp.AddUrl (srcAnchor.href, srcImage.Alt)
finir si
sinon si srcEvent.type="MenuExtUnknown" alors
définir srcAnchor = EventElement
faire jusqu'à ce que TypeName(srcAnchor)="HTMLAnchorElement"
définir srcAnchor=srcAnchor.parentElement
si TypeName(srcAnchor)="Rien" alors
Appelez objNetSamp.AddUrl (EventElement.href, EventElement.innerText)
quitter le sous
finir si
Boucle
Appelez objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
finir si
fin du sous-marin
callOnContextMenu()
</script>
Enregistrez le fichier dans c:program files avec le nom de fichier geturl.htm
Comme vous pouvez le voir dans le script ci-dessus, accédez d'abord à la propriété external.menuArguments pour obtenir l'objet sur lequel l'utilisateur clique avec le bouton droit de la souris, puis obtenez son URL basée sur l'objet, puis créez l'objet IEContextMenu.IEMenu1 et appelez l'AddURL de l'objet. méthode.
L'étape suivante consiste à créer un élément d'enregistrement pour le menu contextuel, à ouvrir UltraEdit (ou un autre éditeur de texte) et à saisir les données d'enregistrement suivantes dans l'éditeur.
Éditeur de registre Windows version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&Get URL]
@="c:\fichiers programme\geturl.htm"
"Contexts"=dword:00000022
Enregistrez le fichier avec reg comme suffixe, puis double-cliquez sur le fichier dans l'Explorateur Windows pour ajouter la clé d'enregistrement au registre, puis ouvrez-le.
IE, cliquez avec le bouton droit sur un lien ou une image et un élément Obtenir l'URL apparaîtra dans le menu contextuel. Cliquez sur cet élément et une boîte de message apparaîtra indiquant l'adresse URL du lien ou de l'image cliqué.
Introduisons le rôle de l'élément Contextes dans l'élément d'enregistrement ci-dessus. Grâce à cet élément, vous pouvez spécifier quel élément de menu apparaît lorsque vous cliquez avec le bouton droit sur un objet dans IE. Il peut s'agir d'une combinaison "OU" des valeurs suivantes :
valeur de l'objet
Par défaut 0x1
Image 0x2
Contrôle 0x4
Champ de formulaire 0x8
Sélectionnez le texte 0x10
Point d'ancrage 0x20
Par exemple, ci-dessus, nous voulons que l'élément de menu apparaisse lorsque l'utilisateur clique sur l'image ou le lien hypertexte, puis nous définissons la valeur sur dword:00000022, ce qui signifie que le menu apparaîtra lorsque l'utilisateur clique sur l'image ou l'ancre. Une ancre est un objet sur la page qui décrit un lien hypertexte. Si l'élément Contextes n'est pas défini, les éléments de menu apparaîtront dans le menu contextuel lorsque vous cliquez sur n'importe quel objet.
Grâce à l'introduction du programme ci-dessus, nous pouvons voir le processus de fonctionnement du menu contextuel de la souris IE. Comme mentionné précédemment, Netants utilise cette méthode pour appeler NetAnts en créant des objets dans des scripts. Si nous installons NetAnts, nous pouvons appeler NetAnts dans le programme en appelant l'objet NetAnts.
Créez un nouveau projet, cliquez sur l'élément Projets | Références dans le menu et sélectionnez l'élément Bibliothèque de types AntAPI 1.0. Si le bouton Navigateur n'est pas cliqué, sélectionnez NetAPI.dll dans le répertoire Network Ant dans la zone de liste des fichiers et appuyez sur le bouton Ouvrir. clé. Ajouter un CommandButton dans Form1
, ajoutez le code suivant dans l'événement Command1_Click :
Dim ant comme nouveau ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
Cliquez sur command1, puis NetAnts s'exécutera et 7. HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Votre GUID> dans le registre
Créez une nouvelle valeur de type String nommée Clsid et définissez la valeur sur {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}.
8. Dans le registre HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Votre GUID>
Créez une nouvelle valeur de type String nommée Exec. Cette valeur définit le nom de chemin complet du fichier à exécuter après avoir cliqué sur le bouton, par exemple :
c:program filessamplesnet.exe
Par exemple, le contenu de la clé de registre du bouton NetAnts est le suivant :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- B792-444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Visible par défaut"="Oui"
"HotIcon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"Icône"="C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"Exec"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText" = "NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
Les Netants seront lancés lorsque vous cliquerez sur le bouton NetAnts. Les deux éléments suivants dans la clé de registre ci-dessus : la clé MenuText ajoute un élément de menu à la barre "Outils" du menu et la clé MenuStatusBar définit le texte d'invite qui s'affiche dans la barre d'état lorsque le curseur se déplace vers le menu ajouté. bar. De plus, dans le registre
Vous pouvez également ajouter un fichier nommé
Valeur de type chaîne de MenuCustomize. Si vous définissez cette valeur sur "Aide", l'élément de menu apparaîtra dans la barre de menu "Aide", sinon il apparaîtra dans la barre "Outils".
Bien sûr, nous ne nous contenterons pas d'ajouter un bouton et d'exécuter un programme. Nous espérons pouvoir contrôler la page actuelle lorsque l'utilisateur clique sur le bouton, qui se trouve dans le registre HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions. <Votre GUID>
Créez une nouvelle valeur de type String et définissez le nom sur le chemin complet d'un fichier HTML. De la même manière que pour l'ajout d'un menu contextuel présenté précédemment, IE appellera le fichier après avoir cliqué sur le bouton et y accédera en définissant VBScript dans le fichier. fichier. La propriété menuArguments de l'objet externe peut obtenir la page dans le navigateur. Par exemple, nous allons HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Votre GUID>VBScript
Définissez la valeur sur c:program filessamp.htm, puis créez un fichier nommé Samp.htm sous c:program files et entrez le contenu du script suivant dans le fichier :
<script langage="VBScript">
Set objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
Appelez objNetSamp.AddUrl(userURL,"")
</script>
Ouvrez le navigateur IE, cliquez sur le bouton Nouveau et une boîte de dialogue apparaîtra pour afficher l'URL de la page actuelle. Notez que cet élément ne peut pas être utilisé en même temps que l’élément Exec défini précédemment.
Enfin, pour les icônes de boutons, IE nécessite deux tailles d'icônes : 20 x 20 et 16 x 16. La première est utilisée pour l'affichage en état normal, et la seconde est utilisée pour l'affichage en plein écran. Les ressources d'icônes pointées par HotIcon et Icon ci-dessus doivent donc être utilisées. be Une combinaison de trois icônes. Les spécifications de ces trois icônes sont les suivantes :
Icône 16x16 16 couleurs (obligatoire)
Icône 20x20 16 couleurs (facultatif)
Icône 20x20 256 couleurs (obligatoire)
Lors de la conception d'icônes, les icônes de 256 couleurs doivent utiliser la palette de demi-teintes de Windows, tandis que les icônes de 16 couleurs doivent utiliser la palette de 16 couleurs de Windows.
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html