こんばんは〜
webbrowserコンポーネント上で,
自動的に右クリックし,コンテクストメニューを開いて,
そのメニューをキーで選ぶことってできますか?
webbrowser以外にボタンを一つ配置して,
①ボタンをクリックすると,
②指定した場所へマウスの標準が合わされ,
③コンテクストメニューが開き,
④キーによって項目が選ばれる
というものです.
まず自分はCommand1_Clickの部分に
SetCursorPosを使って,標準を合わせ,
mouse_eventによって座標を拾い,
コンテクストメニューを表示させるまでは行ったのですが,
キーによって項目を選ぶことができません.
例えば貼り付けを選択するならば,
「sendkeys "p"」でいいと思うのですが...
下記のプログラムをあるテキストボックスで実行すると,
コンテクストメニューを解除した後に p がテキストボックスに入力されてしまいます.
手動であれば、意識もしないことですが,
他にメニューの項目を選ぶような処理が必要なのでしょうか.
プログラムとしては
Dim Poi As POINTAPI
GetCursorPos Poi
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, _
Poi.x, Poi.y, 0, 0)
Call mouse_event(MOUSEEVENTF_RIGHTUP, _
Poi.x, Poi.y, 0, 0)
SendKeys "p"
この過程でやっています.(定義など省略しますが)
どなたかわかる方がいればご教授御願いします.
ヘルプをごらんになればおわかりと思いますが、
SendKeys ステートメントはキーストロークまたは
キーストロークの組み合わせを、アクティブ ウィンドウに渡します。
アクティブ ウィンドウではないコンテクストメニューには渡しません。
キーストロークの合成ならkeybd_eventをためしてみてはいかがでしょう?
キーボードドライバの割込みハンドラも、この関数を呼び出していますから、
キーデバイスからできることはほとんどこの関数で実行可能でしょう。
どうもありがとうございます
keybd_eventでいけました〜
解決をチェックするの忘れました(笑)
ツイート | ![]() |