IEのポップアップメニューにアプリを登録する方法

解決


Fusa  URL  2007-12-30 22:22:30  No: 29134

紙copiというソフトを使っているのですが
このソフトのように、IEの右クリックメニューに
自分のアプリを登録して起動する方法を実現するにはどうしたら
よいのでしょうか?

そのとき、すべて選択している部分や
選択している範囲のHTMLソースを取得するには
どのようにすればいいですか?

さらに、同ソフトのように
IEで選択したテキストをドラッグ&ドロップして
取得する方法もご存じでしたら教えてください。

OLED&Dなのかな?

よろしくお願いします。


これって...  2008-01-05 01:51:38  No: 29135

試しに、紙copiをインストールしてみたら、このソフト、
登録したIEの右クリックメニューから自前のActiveXを呼び出しているんで、
同じようなことをしたければ、専用のActiveXを作る必要があるね。
IEの右クリックメニューへの登録は難しくないけど、ActiveX自作が大変かな。


にしの  2008-01-05 06:41:06  No: 29136

レジストリの、
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
に、キー(名前がメニューキャプションになります)を用意し、
そのキーの(既定)にHTMLパスを、
contentsという名前のDWORDに、どのタイミングのメニューかを表すフラグを設定してやれば、IEの右クリックメニューを追加できます。

用意するHTMLは、たとえば

<SCRIPT LANGUAGE="VBScript">
Set shell = CreateObject("Wscript.Shell")
shell.Run "C:\WINDOWS\system32\notepad.exe"
</SCRIPT>

このような感じにかけばnotepadが起動するので、notepadのパスを自身のアプリのパスにすれば起動できます。
起動パラメータに、そのページのURLなり選択された文字列なりを渡せばよいかと。
Googleで「IE メニュー 追加」などと検索するといろいろ出てきますよ。


Fusa  URL  2008-01-11 22:24:39  No: 29137

お返事遅くなりました。

なるほど!
こういう仕組みだったのですね。

ページのURLや選択された文字列を渡すところの
スクリプトをみると
紙copiではActiveX呼び出しになっていますが

どうも動作的にはクリップボード経由して
値を取得しているような気もします。
Ctrl+A Ctrl+C して別Exeを起動するような
ActiveXを作っているのかな?

そのActiveXの作り方は知りたい所ですね。
JavaScriptで、コピーと別exe起動ができれば
いいんですが...

contentsの値によって
どこのどんな状況の右クリックメニューにでるか
という情報も、探せばすぐ出てきそうですね。

こんなサイトもみつけました。

CodeZine:IEで選択した部分のソースコードを右クリックメニューで編集する(後編)(IE, ユーザビリティ)
http://codezine.jp/a/article/aid/875.aspx

ありがとうございます。勉強してみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加