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で。
以前やったことがあります。
私はiriaの方法をまねしました。
ActiveX dllを作ってVBScriptから実行する方法です。
ママん 様、ありがとうございました。
右クリックからの直接起動ではないものの、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ファイルを呼び出す方法は将来の検討課題ですね。
間違えました。
この例ならば、メソッドの呼び出しは
prj.Method1ではなく
prj.say
ですね。
ツイート | ![]() |