3

Google-fuを実行してStackOverflowを検索した後、アイテムの右クリックメニューにアクセスしてデータを読み取ったり、そこからアイテムを選択したりする方法を見つけることができませんでした。SendMessageとPostMessageのメソッドを調べました

私がこれまでにしたこと:

これは、Qtを使用せず、外部アプリケーションで機能する場合に、まさに私が望んでいた投稿の例です。私が見つけたのは、外部アプリケーションの右クリックメニューを表示したいときに右クリックメニューを作成することだけです。

Spy ++を使用してコンテキストメニューのハンドルを取得しようとしましたが、Spy ++で[ウィンドウの検索]オプションを選択するとすぐにメニューが消えます(これは予想されることです)。

これを行うために私が考えることができる唯一の方法は、mouse_eventを使用してボックスを表示することですが、そこからどこに行くべきかわかりません。これも非常に非効率的だと思います。

私はいくつかのレガシーコードに取り組んでいるので、使用できるものについて多くの選択肢がありません。可能であれば、VisualStudio2008に含まれていないライブラリを使用したくないのです。

私がやろうとしていること:

外部アプリケーションで右クリックのコンテキストメニューにアクセスし、その中のデータを読み取ってから項目を選択する方法を探しています。これは本当に簡単なはずなのに、私の研究スキルは劣っています。誰かが私を正しい方向に向けることができれば、私は本当に感謝します。

読んでくれてありがとう!

4

1 に答える 1

1

コンテキストメニューを取得する唯一の方法は、アプリケーションにそれを表示させることです。それ以外には存在しません。(例として挙げるもう1つの質問は、使用できるように設計されたWindowsシェルメニューに関するものです)

ユーザーが右クリックするとウィンドウにWM_CONTEXTMENUが送信されるため、SendMessage()を使用してメニューを呼び出すか、右クリックを送信するだけで失敗する可能性があります。

少しグーグルした後、コンテキストメニューのクラス名は#32768だと思います。そのため、FindWindowExを使用して、一致するクラス名を持つ子ウィンドウハンドルを見つけることができます。

ウィンドウハンドルを取得したら、MN_GETHMENUメッセージを使用してメニューハンドルを取得できます。

于 2012-09-14T08:47:51.390 に答える