2016-08-05 16 views
0

私はサードパーティのアプリケーションを持っています。私はアドインを作成しています。可能であれば、特定のダイアログを修正する必要があります。そのダイアログには、多くのコントロールとグループがあります。それは、オーナーが描いたように見えます。したがって、ウィンドウハンドルはspy ++やその他のツールに公開されません。このダイアログのコントロールを無効にする方法については、私は洞察を歓迎します。オーナー描画コントロールを変更する

私はインプロセスで実行していますので、私は機能を傍受し、私は、その後のWndProcメッセージを上書きするのNativeWindow(C#の)のような技術を使用することができるコントロールにハンドルを見つけるためにenumwindows/enumchildwindowsなどの呼び出しを使用するように迂回(https://www.microsoft.com/en-us/research/project/detours/)を使用することができますし、操作を行う。私もsetwindowshookexに精通しており、メッセージキューをフックしています。

オーナーの描画コントロールで作業するためのアイデアやパターンを探しているだけです。ありがとう!

[編集1]私はUIオートメーション(C#/ C++)とIAccessibleフレームワークにも精通しています。これらは、マウスのクリックなどを検出するような、ある程度のコントロール(ポテンシオール)を可能にしますが、私はよりエレガントなものを望んでいました。例えば:通常のコンボボックスでは、ハンドルがあればsendmessage()を使ってその内容を操作するCB_ *メッセージを送ることができます。あなたがハンドルを手に入れることができない場合、コンボボックスでそれをどうやって行うのですか?所有者が描かれている(おそらく)と、他のオーナーの一部が描かれている親であることを考えると、ウィンドウを公開していないので、

+0

UIオートメーションよりも優雅なものは見つかりません。 – IInspectable

+1

お待ちしています。どのような変更をお探しですか?また、あなたはおそらく "ウインドウなし"を意味し、 "所有者が描いた"という意味ではありません。 – andlabs

+0

理想的な世界では、私はEnableWindow()を呼び出したり、CB_ *メッセージをコンボボックスに送ることが大好きです – David

答えて

0

その後

彼らは本当のコントロールは限りOSが懸念しているようではありません、ので、あなたがアクセスできることは何が/ありませんスパイのようなツール++などへのハンドルそれらを操作する直接。アプリケーションは、APIまたはUIオートメーションインターフェイスを公開する必要があります。おそらく、アドオンには本当に必要なアクセス以上のアクセスは提供されません。

あなたの目標を達成するためのヘルプについては、アプリの著者にお問い合わせください。

関連する問題