メモ帳(notepad)等に対してポップアップメニューに独自のメニューを追加するには


GSFK  2007-11-22 07:14:09  No: 28621

メモ帳(notepad)等のソフトで右クリック時に表示されるポップアップメニューをカスタマイズするにはどのようにすればよろしいのでしょうか?
そもそも可能なのかどうか分かりません。
具体的には、通常の場合、
----------------
元に戻す
----------------
切り取り
コピー
貼り付け
削除
----------------
・・・・・
----------------

のように表示されますが、例えばこれを、
----------------
元に戻す
----------------
切り取り
コピー
選択範囲を半角変換してコピー(この行を追加)
選択範囲を全角変換してコピー(この行を追加)
貼り付け
削除
----------------
・・・・・
----------------
のようにポップアップメニューに独自のメニューを作成することが目的です。
また、メモ帳だけでなく、例えばマイコンピュータのアドレスバーやその他文字列を扱うオブジェクト(?)に対して追加したいのです。
可能か不可能なのかすら分かりませんが、もし情報等ありましたら情報提供をお願い致します。
よろしくお願い致します。


さなみ  2007-11-22 10:02:26  No: 28622

InternetExproerならばポップアップメニューを変更するのは簡単ですが、メモ帳やエクスプローラとなるとかなり厄介です。

恐らくWM_CONTEXTMENUあたりのメッセージをとらえて、
動的にポップアップメニューを作成するのだと思うのですが、
他のアプリケーションに割り込んでメッセージを拾うプログラムを書く必要があります。

やり方としては「システムフック(別名:グローバルフック)」という方法を使います。
・フック
・DLL作成
・ファイルマッピングオブジェクトの作成
という3つのプログラム技術を同時に使いますので、かなり複雑です。

メニューの動的変更については、
CreatePopupMenu()、AppendMenu()、RemoveMenu()、DeleteMenu()、InsertMenuItem()あたりのAPIのサンプルを探してください。

システムフックについては、「Advanced Windows:ジェフリー リッチャー(著)」を読むのが定番です。
ネットで検索してもいろいろサンプルは見つかります。


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

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






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