1.IEの右クリックメニューにメニュー項目を追加する方法
Netants を使用したことのある友人は、NetAnts が IE に右クリック メニュー機能を追加したことを知っているかもしれません。ページ上のリンクまたは画像を右クリックし、メニューで [Down By Netants] を選択する限り、Netants を呼び出してダウンロードできるようになります。リンクが指すファイル。この記事では、このような機能を VB で実装する方法を紹介します。
IE の右クリック メニューにメニュー項目を追加する機能を実装するには、次の手順を順番に実装する必要があります。
1. レジストリの HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt 項目の下に新しい項目を作成します。たとえば、作成するメニュー項目のタイトルは、項目の名前として表示されます。 URL を追加すると、新しい項目の名前は次のようになります。
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtURL の追加
2. 新しい項目のデフォルト値を URL アドレスに設定します。ユーザーがメニュー項目をクリックすると、IE は、ターゲット ページのスクリプト内の menuArguments 属性にアクセスします。 IE が提供する外部オブジェクトのリンク、画像、フォーム フィールド、選択したテキストなど、IE のページ内のさまざまなオブジェクトにアクセスできます。詳細なヘルプについては、InternetExplore オブジェクトに関する MSDN を参照してください。
Window オブジェクトに精通している場合は、ヘルプを参照すると、次のスクリプトをよりよく理解できます。
menuArguments にアクセスする独自のプログラムを実装する方法の問題については、Netants のアプローチに従い、最初に
OLE オートメーション オブジェクトを呼び出し、スクリプト内でそのオブジェクトを呼び出し、処理のためにページ情報をオブジェクトに渡します。次に、最初に VB を通じてオブジェクトを作成する必要があります。
VB を開き、メニューをクリックします: [ファイル] | [新規作成]、新しいプロジェクト ウィンドウで [ActiveX Dll] を選択し、[OK] キーを押して ActiveX DLL を作成します。
プロジェクト。次に、プロジェクト リスト ウィンドウで Class1 の Name プロパティを NetAPI に変更し、NetAPI コード ウィンドウに次のコードを追加します。
Public Sub AddURL(文字列としての URL、文字列としての情報)
MsgBox 情報、vbOKOnly、URL
エンドサブ
ファイルを保存し、プロジェクト ファイルを NetSamp.vbp として保存します。次に、メニューで [ファイル]、[NetSamp.dll の作成] の順に選択して、オブジェクト ダイナミック リンク ライブラリを作成します。
次は登録ライブラリです。Windows ディレクトリで Regsvr32.exe を見つけて、netsamp.dll が存在するディレクトリにコピーします。
netsamp.dll のアイコンを Regsvr32.exe にドラッグして放します。この時点で、オブジェクトの登録が成功したことを示すダイアログ ボックスが表示されます。
UltraEdit (または他のテキスト エディタ) を開き、次のスクリプト コードをエディタに入力します。
<script language="VBScript">
Sub OnContextMenu()
エラー時は次へ再開
set srcEvent = external.menuArguments.event
set EventElement = external.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
set objNetSamp=CreateObject("NetSamp.NetAPI")
srcEvent.type = "MenuExtAnchor" の場合
srcAnchor = イベント要素を設定します
TypeName(srcAnchor)="HTMLAnchorElement" まで実行します
set srcAnchor=srcAnchor.parentElement
ループ
objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText) を呼び出します。
elseif srcEvent.type="MenuExtImage" then
TypeName(EventElement)="HTMLAreaElement" の場合
objNetSamp.AddUrl(EventElement.href,EventElement.Alt) を呼び出します。
それ以外
srcImage = EventElement を設定します
srcAnchor = srcImage.parentElementを設定します
TypeName(srcAnchor)="HTMLAnchorElement" まで実行します
set srcAnchor=srcAnchor.parentElement
TypeName(srcAnchor)="Nothing" の場合
objNetSamp.AddUrl(srcImage.href,srcImage.Alt) を呼び出します。
出口サブ
終了する場合
ループ
objNetSamp.AddUrl(srcAnchor.href, srcImage.Alt) を呼び出します。
終了する場合
elseif srcEvent.type="MenuExtUnknown" then
srcAnchor = イベント要素を設定します
TypeName(srcAnchor)="HTMLAnchorElement" まで実行します
set srcAnchor=srcAnchor.parentElement
TypeName(srcAnchor)="Nothing" の場合
objNetSamp.AddUrl(EventElement.href,EventElement.innerText) を呼び出します。
出口サブ
終了する場合
ループ
objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText) を呼び出します。
終了する場合
終了サブ
callOnContextMenu()
</script>
ファイルを geturl.htm というファイル名で c:program files に保存します。
上記のスクリプトからわかるように、まず external.menuArguments プロパティにアクセスしてユーザーがマウスの右ボタンをクリックしたオブジェクトを取得し、次にそのオブジェクトに基づいて URL を取得し、次に IEContextMenu.IEMenu1 オブジェクトを作成して、オブジェクトの AddURL を呼び出します。方法。
次の手順では、右クリック メニューの登録項目を作成し、UltraEdit (または他のテキスト エディタ) を開き、エディタに次の登録データを入力します。
Windows レジストリ エディタ バージョン 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&Get URL]
@="c:\プログラム ファイル\geturl.htm"
"Contexts"=dword:00000022
サフィックスとして reg を付けてファイルを保存し、Windows エクスプローラーでファイルをダブルクリックして登録キーをレジストリに追加して開きます。
IE の場合、リンクまたは画像を右クリックすると、ポップアップ メニューに [URL を取得] 項目が表示されます。この項目をクリックすると、クリックしたリンクまたは画像の URL アドレスを示すメッセージ ボックスが表示されます。
上記の登録項目の Contexts 項目の役割を紹介します。この項目では、IE でオブジェクトを右クリックしたときに表示されるメニュー項目を次の値の「OR」の組み合わせで指定できます。
オブジェクトの値
デフォルト 0x1
画像0x2
コントロール0x4
フォームフィールド0x8
テキスト0x10を選択
アンカーポイント0x20
たとえば、上記では、ユーザーが画像またはハイパーリンクをクリックしたときにメニュー項目が表示されるようにしたいので、値を dword:00000022 に設定します。これは、ユーザーが画像またはアンカーをクリックしたときにメニューが表示されることを意味します。アンカーは、ハイパーリンクを説明するページ上のオブジェクトです。 Contexts 項目が設定されていない場合、オブジェクトをクリックすると右クリック メニューにメニュー項目が表示されます。
上記のプログラムの紹介を通じて、IE のマウスの右クリック メニューの動作プロセスを確認できます。前述したように、Netants はこのメソッドを使用して、スクリプト内にオブジェクトを作成して NetAnts を呼び出します。NetAnts をインストールすると、NetAnts オブジェクトを呼び出すことでプログラム内で NetAnts を呼び出すことができます。
新しいプロジェクトを作成し、メニューの [プロジェクト] | [参照] 項目をクリックし、 [ブラウザ] ボタンをクリックしていない場合は、ファイル リスト ボックスの Network Ant ディレクトリで NetAPI.dll を選択し、 [開く] をクリックします。鍵。 Form1 にコマンドボタンを追加する
ボタンをクリックし、Command1_Click イベントに次のコードを追加します。
新しいものとして暗い ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
command1 をクリックすると、NetAnts が実行されます。 7. レジストリ内の HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Your GUID>
Clsid という名前の新しい String 型の値を作成し、その値を {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} に設定します。
8. レジストリ HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Your GUID> 内
Exec という名前の新しい文字列型の値を作成します。この値は、ボタンをクリックした後に実行されるファイルの完全なパス名を定義します。次に例を示します。
c:program filessamplesnet.exe
たとえば、NetAnts ボタンのレジストリ キーの内容は次のとおりです。
Windows レジストリ エディタ バージョン 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- B792 -444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
「デフォルトで表示」=「はい」
"HotIcon" = "C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"アイコン" = "C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"実行"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText" = "NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
NetAnts ボタンをクリックすると NetAnts が起動します。上記のレジストリ キーの次の 2 つの項目: MenuText キーはメニューの「ツール」バーにメニュー項目を追加し、MenuStatusBar キーは追加されたメニューにカーソルが移動したときにステータス バーに表示されるプロンプト テキストを定義します。バー。また、レジストリには
という名前のファイルを追加することもできます
MenuCustomize の文字列型の値。この値を「Help」に設定すると、メニュー項目が「Help」メニュー バーに表示されます。それ以外の場合は、「Tools」バーに表示されます。
もちろん、ボタンを追加してプログラムを実行するだけでは満足できません。ユーザーがボタンをクリックしたときに、レジストリの HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions にある現在のページを制御できるようにしたいと考えています。 <あなたの GUID>
新しいString型の値を作成し、その名前をHTMLファイルのフルパス名に設定します。先ほど紹介した右クリックメニューの追加と同様に、IEはボタンをクリックした後にファイルを呼び出し、そのファイルにVBScriptを設定することでアクセスします。ファイルの menuArguments プロパティを使用して、ブラウザ内のページを取得できます。たとえば、HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Your GUID>VBScript となります。
値を c:program filessamp.htm に設定し、c:program files に Samp.htm という名前のファイルを作成し、そのファイルに次のスクリプトの内容を入力します。
<script language="VBScript">
Set objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
objNetSamp.AddUrl(userURL,"") を呼び出します
</script>
IE ブラウザを開き、[新規] ボタンをクリックすると、ダイアログ ボックスがポップアップ表示され、現在のページの URL が表示されます。なお、この項目は先に設定したExec項目と同時に使用することはできません。
最後に、ボタン アイコンについて、IE では 20x20 と 16x16 の 2 つのサイズのアイコンが必要です。前者は通常状態での表示に使用され、後者は全画面表示に使用されるため、上記の HotIcon と Icon が指すアイコン リソースが必要です。これら 3 つのアイコンの仕様は次のとおりです。
16x16 16 色のアイコン (必須)
20x20 16 色のアイコン (オプション)
20x20 256 色のアイコン (必須)
アイコンをデザインする場合、256 色のアイコンは Windows ハーフトーン パレットを使用し、16 色のアイコンは Windows 16 色パレットを使用する必要があります。
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html