WebBrowserでのショートカットを無効化するには?


Take  2004-01-03 22:48:57  No: 81215

WebBrowserコントロールを使用すると、IEに標準で装備されているショートカットも動作するのですが、それのせいで、こちらが新たに設定したショートカットが動作しません。
WebBrowserコントロールのショートカットを無効にするには、どうすればいいのでしょうか?


魔界の仮面弁士  2004-01-04 20:45:34  No: 81216

キーボードショートカットの事であれば、このあたりとか。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200311/03110001.txt


Take  2004-01-05 02:24:47  No: 81217

ありがとうございます。
上のアドレス先にある、代替手段の方法でやる場合、「キーボードショートカットが押された時に呼ばれるイベント」というものは、存在するのでしょうか?
色々調べてみたのですが、見つからなくて・・・。
やはり、VC++を使う方法しかないのでしょうか・・・?


魔界の仮面弁士  2004-01-05 04:25:52  No: 81218

>「キーボードショートカットが押された時に呼ばれるイベント」
onkeypressイベント、onkeyupイベント、onkeydownイベントなどがそれにあたります。
その中で、event.keyCode、event.shiftKey等を使って判別してみてください。
また、幾つかの処理に関しては、固有の処理イベントが用意されている物もあります。
# 例えば、クリップボード操作であれば onbeforecopy、onbeforecut、onbeforepaste……とか。

ただし、処理順の関係で、キャンセル可能な処理とキャンセル不可能な処理とがありますので、IDocHostUIHandlerを使った方が無難かも知れません。
# VC++があるなら、WBCustomizerを使うと手軽なのですけれどね。

> VC++を使う方法しかないのでしょうか・・・?
MicrosoftのWBCustomizerサンプルとは別に、Eduardo A. Morcilloさんのライブラリを使った方法を提示してありますが、あれでは参考になりませんか?
とりあえず、一通りのキーボード操作は握りつぶせると思いますよ。

この場合、VB標準のKeyDownイベント等にも処理されなくなってしまいますが、IDocHostUIHandlerのTranslateAcceleratorにて、lpmsg.messageがWM_KEYDOWNであるかどうかを調べ、その時のlpmsg.wParamやlpmsg.lParamを見る事で、VBのKeyDownの代用とできます。


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

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






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