IEの右クリックメニューでexeファイルを起動するには?

解決


millefeuille  2006-06-04 23:06:50  No: 21999

IEの右クリックメニュー(コンテキストメニュー)からexeファイルを直接
呼び出す方法がわかりません。

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
にスクリプトを置けば新たなメニューを作成できることは分かっており、
VBScriptで、
  wshshell=new ActiveXObject("WScript.Shell")
  wshshell.run("c:\\hogehoge.exe")
とやる方法も紹介されていますが、セキュリティ関係の制限か旨く動いて
くれません。

ところが、私のPCには「Excel にエクスポート(&X)」というメニューが
登録されており、
res://C:\PROGRA~1\MICROS~2\OFFICE11\EXCEL.EXE/3000
となっています。
実際にexeファイルが直接起動されているのですが、これをnotepad.exeに
書き換えてもメモ帳は起動されません。

直接起動できるexeファイルはどのように作るのでしょうか?
できればDelphiで。


ママん  2006-06-05 06:59:00  No: 22000

以前やったことがあります。
私はiriaの方法をまねしました。
ActiveX dllを作ってVBScriptから実行する方法です。


millefeuille  2006-06-09 08:28:47  No: 22001

ママん 様、ありがとうございました。
右クリックからの直接起動ではないものの、VBScript経由でdllを起動
出来ました。

少々、分かりにくいところもありましたし、他の方の参考にもなるで
しょうから、
もう少し具体的な実現方法を記載します。

まず、ActiveX dllを作成します。
これは、次の例が参考になりました。
http://www.wwlnk.com/boheme/delphi/vbtodel/vbfaq/vbd0080.htm

次に、VBScript。上記の例で言えば、次のようになります。
<SCRIPT LANGUAGE="VBScript">
        Dim prj
        Set prj = CreateObject("TestActivexDll.TestActivexDll")
        prj.Method1
        Set prj = Nothing
</SCRIPT>
分かりにくいのはこの部分。
CreateObject("TestActivexDll.TestActivexDll")
です。
CreateObject("<プロジェクト名>.<クラス名>")
という組み合わせで呼び出します。

最後に、IE上での右クリックメニューへの登録。
これは、次の例が参考になります。
http://www.geocities.co.jp/SilkRoad/4511/vb/ieright.htm
「MenuExt」で検索するとたくさんでてきます。

以上です。

直接exeファイルを呼び出す方法は将来の検討課題ですね。


millefeuille  2006-06-09 08:31:51  No: 22002

間違えました。

この例ならば、メソッドの呼び出しは
prj.Method1ではなく
prj.say
ですね。


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

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






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