1. So fügen Sie Menüelemente zum IE-Rechtsklickmenü hinzu
Freunde, die Netants verwendet haben, wissen möglicherweise, dass NetAnts eine Rechtsklick-Menüfunktion im IE hinzugefügt hat. Solange Sie mit der rechten Maustaste auf einen Link oder ein Bild auf der Seite klicken und im Menü „Down By Netants“ auswählen, können Sie Netants zum Herunterladen aufrufen die Datei, auf die der Link verweist. In diesem Artikel stellt der Autor vor, wie eine solche Funktion über VB implementiert wird.
Um die Funktion zum Hinzufügen von Menüelementen zum IE-Rechtsklickmenü zu implementieren, müssen die folgenden Schritte nacheinander ausgeführt werden:
1. Erstellen Sie ein neues Element unter dem Element HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt. Der Name des Elements erscheint beispielsweise als Titel des Menüelements, das Sie erstellen möchten URL hinzufügen, dann lautet der Name des neuen Elements
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtURL hinzufügen
2. Legen Sie den Standardwert des neuen Elements auf eine URL-Adresse fest. Wenn der Benutzer auf das Menüelement klickt, ruft IE das Skript auf der Seite auf, auf die die URL verweist. Greifen Sie im Skript der Zielseite auf das Attribut „menuArguments“ zu des vom IE bereitgestellten externen Objekts Sie können im IE auf verschiedene Objekte auf der Seite zugreifen, z. B. auf Links, Bilder, Formularfelder, ausgewählten Text usw. Ausführliche Hilfe finden Sie im MSDN zum InternetExplore-Objekt
Mit Hilfe können Sie das folgende Skript besser verstehen, wenn Sie mit dem Window-Objekt vertraut sind.
Für das Problem, wie wir unser eigenes Programm für den Zugriff auf menuArguments implementieren, können wir dem Ansatz von Netants folgen und zunächst ein Programm erstellen
Erstellen Sie ein OLE-Automatisierungsobjekt, rufen Sie dann das Objekt im Skript auf und übergeben Sie die Seiteninformationen zur Verarbeitung an das Objekt. Als nächstes müssen wir zunächst ein Objekt über VB erstellen:
Öffnen Sie VB, klicken Sie auf das Menü: Datei | Neu, wählen Sie im neuen Projektfenster ActiveX-DLL aus und drücken Sie die OK-Taste, um eine ActiveX-DLL zu erstellen
Projekt. Ändern Sie dann im Projektlistenfenster die Name-Eigenschaft von Class1 in NetAPI und fügen Sie dann den folgenden Code im NetAPI-Codefenster hinzu:
Public Sub AddURL(URL als String, Info als String)
MsgBox-Info, vbOKOnly, URL
Sub beenden
Speichern Sie die Datei und speichern Sie die Projektdatei als NetSamp.vbp. Wählen Sie dann Datei |. NetSamp.dll erstellen im Menü, um die Objekt-Dynamic-Link-Bibliothek zu erstellen.
Als nächstes folgt die Registrierungsbibliothek. Suchen Sie Regsvr32.exe im Windows-Verzeichnis und kopieren Sie sie dann in das Verzeichnis, in dem sich netsamp.dll befindet.
Ziehen Sie das Symbol von netsamp.dll auf Regsvr32.exe und lassen Sie es los. Zu diesem Zeitpunkt öffnet Regsvr32.exe ein Dialogfeld mit der Meldung, dass die Objektregistrierung erfolgreich ist.
Öffnen Sie UltraEdit (oder einen anderen Texteditor) und geben Sie den folgenden Skriptcode in den Editor ein:
Sub OnContextMenu()
Bei Fehler Weiter fortsetzen
setze srcEvent = external.menuArguments.event
set EventElement = external.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
set objNetSamp=CreateObject("NetSamp.NetAPI")
if srcEvent.type = "MenuExtAnchor" dann
set srcAnchor = EventElement
tun, bis TypeName(srcAnchor)="HTMLAnchorElement"
setze srcAnchor=srcAnchor.parentElement
Schleife
Rufen Sie objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText) auf.
elseif srcEvent.type="MenuExtImage" dann
if TypeName(EventElement)="HTMLAreaElement" dann
Rufen Sie objNetSamp.AddUrl(EventElement.href,EventElement.Alt) auf.
anders
set srcImage = EventElement
setze srcAnchor = srcImage.parentElement
tun, bis TypeName(srcAnchor)="HTMLAnchorElement"
setze srcAnchor=srcAnchor.parentElement
if TypeName(srcAnchor)="Nothing" dann
Aufruf objNetSamp.AddUrl(srcImage.href,srcImage.Alt)
Sub verlassen
Ende wenn
Schleife
Rufen Sie objNetSamp.AddUrl(srcAnchor.href, srcImage.Alt) auf.
Ende wenn
elseif srcEvent.type="MenuExtUnknown" dann
set srcAnchor = EventElement
tun, bis TypeName(srcAnchor)="HTMLAnchorElement"
setze srcAnchor=srcAnchor.parentElement
if TypeName(srcAnchor)="Nothing" dann
Rufen Sie objNetSamp.AddUrl(EventElement.href,EventElement.innerText) auf.
Sub verlassen
Ende wenn
Schleife
Rufen Sie objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText) auf.
Ende wenn
Ende Sub
callOnContextMenu()
Speichern Sie die Datei unter c:Programme mit dem Dateinamen geturl.htm
Wie Sie dem obigen Skript entnehmen können, greifen Sie zunächst auf die Eigenschaft external.menuArguments zu, um das Objekt abzurufen, auf das der Benutzer mit der rechten Maustaste klickt. Rufen Sie dann dessen URL basierend auf dem Objekt ab, erstellen Sie dann das Objekt IEContextMenu.IEMenu1 und rufen Sie die AddURL des Objekts auf Verfahren.
Der nächste Schritt besteht darin, ein Registrierungselement für das Rechtsklick-Menü zu erstellen, UltraEdit (oder einen anderen Texteditor) zu öffnen und die folgenden Registrierungsdaten in den Editor einzugeben.
Windows-Registrierungseditor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&Get URL]
@="c:\Programme\geturl.htm"
„Contexts“=dword:00000022
Speichern Sie die Datei mit reg als Suffix, doppelklicken Sie dann im Windows Explorer auf die Datei, um den Registrierungsschlüssel zur Registrierung hinzuzufügen, und öffnen Sie sie dann
IE, klicken Sie mit der rechten Maustaste auf einen Link oder ein Bild, und im Popup-Menü wird das Element „URL abrufen“ angezeigt. Klicken Sie auf dieses Element, und ein Meldungsfeld wird mit der URL-Adresse des angeklickten Links oder Bilds angezeigt.
Lassen Sie uns die Rolle des Kontextelements im obigen Registrierungselement vorstellen. Über dieses Element können Sie angeben, welches Menüelement angezeigt wird, wenn Sie mit der rechten Maustaste auf ein Objekt im IE klicken. Es kann sich um eine „ODER“-Kombination der folgenden Werte handeln:
Objektwert
Standard 0x1
Bild 0x2
Steuerung 0x4
Formularfeld 0x8
Wählen Sie den Text 0x10 aus
Ankerpunkt 0x20
Oben möchten wir beispielsweise, dass der Menüpunkt angezeigt wird, wenn der Benutzer auf das Bild oder den Hyperlink klickt. Dann setzen wir den Wert auf dword:00000022, was bedeutet, dass das Menü angezeigt wird, wenn der Benutzer auf das Bild oder den Anker klickt. Ein Anker ist ein Objekt auf der Seite, das einen Hyperlink beschreibt. Wenn das Element „Kontexte“ nicht festgelegt ist, werden die Menüelemente im Kontextmenü angezeigt, wenn Sie auf ein beliebiges Objekt klicken.
Durch die obige Programmeinführung können wir den Arbeitsprozess des IE-Maus-Rechtsklickmenüs sehen. Wie bereits erwähnt, verwendet Netants diese Methode, um NetAnts aufzurufen, indem es Objekte in Skripten erstellt. Wenn wir NetAnts installieren, können wir NetAnts im Programm aufrufen, indem wir das NetAnts-Objekt aufrufen.
Erstellen Sie ein neues Projekt, klicken Sie im Menü auf das Element „Projekte | Referenzen“ und wählen Sie das Element „AntAPI 1.0-Typbibliothek“ aus. Wenn Sie nicht auf die Schaltfläche „Browser“ klicken, wählen Sie „NetAPI.dll“ im Verzeichnis „Network Ant“ im Dateilistenfeld aus und klicken Sie auf „Öffnen“. Schlüssel. Fügen Sie in Form1 eine Befehlsschaltfläche hinzu
Fügen Sie den folgenden Code zum Command1_Click-Ereignis hinzu:
Dim ant As New ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
Klicken Sie auf Befehl1, dann wird NetAnts ausgeführt und 7. HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Erstellen Sie einen neuen String-Typwert mit dem Namen Clsid und legen Sie den Wert auf {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} fest.
8. In der Registrierung HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Erstellen Sie einen neuen String-Wert mit dem Namen Exec. Dieser Wert definiert den vollständigen Pfadnamen der Datei, die nach dem Klicken auf die Schaltfläche ausgeführt werden soll, zum Beispiel:
c:Programmesamplesnet.exe
Der Inhalt des Registrierungsschlüssels für die NetAnts-Schaltfläche lautet beispielsweise wie folgt:
Windows-Registrierungseditor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- B792 -444553540000}]
„CLSID“="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
„Standard sichtbar“ = „Ja“
"HotIcon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"Icon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"Exec"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="NetAnts starten"
Netants wird gestartet, wenn auf die NetAnts-Schaltfläche geklickt wird. Die folgenden zwei Elemente im obigen Registrierungsschlüssel: Der MenuText-Schlüssel fügt ein Menüelement zur „Extras“-Leiste des Menüs hinzu, und der MenuStatusBar-Schlüssel definiert den Eingabeaufforderungstext, der in der Statusleiste angezeigt wird, wenn der Cursor zum hinzugefügten Menü bewegt wird Bar. Außerdem in der Registry
Sie können auch eine Datei mit dem Namen hinzufügen
Der String-Typwert „MenuCustomize“ führt dazu, dass das Menüelement in der Menüleiste „Hilfe“ angezeigt wird, andernfalls wird es in der Leiste „Extras“ angezeigt.
Natürlich geben wir uns nicht damit zufrieden, nur eine Schaltfläche hinzuzufügen und ein Programm auszuführen. Wir hoffen, die aktuelle Seite steuern zu können, wenn der Benutzer auf die Schaltfläche klickt, die sich in der Registrierung unter HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions befindet
Erstellen Sie einen neuen String-Typwert und legen Sie den Namen auf den vollständigen Pfadnamen einer HTML-Datei fest. Genauso wie beim Hinzufügen eines Rechtsklick-Menüs, das zuvor eingeführt wurde, ruft IE die Datei auf, nachdem Sie auf die Schaltfläche geklickt haben, und greift darauf zu, indem Sie VBScript festlegen Die Eigenschaft „menuArguments“ des externen Objekts kann die Seite im Browser abrufen. Zum Beispiel werden wir HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
Legen Sie den Wert auf c:Programmesamp.htm fest, erstellen Sie dann eine Datei mit dem Namen Samp.htm unter c:Programme und geben Sie den folgenden Skriptinhalt in die Datei ein:
Set objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
Rufen Sie objNetSamp.AddUrl(userURL,"")
Öffnen Sie den IE-Browser, klicken Sie auf die Schaltfläche „Neu“ und ein Dialogfeld wird angezeigt, in dem die URL der aktuellen Seite angezeigt wird. Beachten Sie, dass dieses Element nicht gleichzeitig mit dem zuvor festgelegten Exec-Element verwendet werden kann.
Schließlich benötigt der IE für Schaltflächensymbole zwei Symbolgrößen: 20 x 20 und 16 x 16. Ersteres wird für die Anzeige im Normalzustand und letzteres für die Anzeige im Vollbildmodus verwendet, sodass die Symbolressourcen, auf die HotIcon und Icon oben verweisen, verwendet werden sollten be Eine Kombination aus drei Symbolen. Die Spezifikationen dieser drei Symbole sind wie folgt:
16x16 16-Farben-Symbol (erforderlich)
20x20 16-Farben-Symbol (optional)
20x20 256-Farben-Symbol (erforderlich)
Beim Entwerfen von Symbolen sollten 256-Farben-Symbole die Windows-Halbtonpalette verwenden, während 16-Farben-Symbole die 16-Farben-Palette von Windows verwenden sollten.
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html