私はサードパーティのアプリケーションを持っています。私はアドインを作成しています。可能であれば、特定のダイアログを修正する必要があります。そのダイアログには、多くのコントロールとグループがあります。それは、オーナーが描いたように見えます。したがって、ウィンドウハンドルはspy ++やその他のツールに公開されません。このダイアログのコントロールを無効にする方法については、私は洞察を歓迎します。オーナー描画コントロールを変更する
私はインプロセスで実行していますので、私は機能を傍受し、私は、その後のWndProcメッセージを上書きするのNativeWindow(C#の)のような技術を使用することができるコントロールにハンドルを見つけるためにenumwindows/enumchildwindowsなどの呼び出しを使用するように迂回(https://www.microsoft.com/en-us/research/project/detours/)を使用することができますし、操作を行う。私もsetwindowshookexに精通しており、メッセージキューをフックしています。
オーナーの描画コントロールで作業するためのアイデアやパターンを探しているだけです。ありがとう!
[編集1]私はUIオートメーション(C#/ C++)とIAccessibleフレームワークにも精通しています。これらは、マウスのクリックなどを検出するような、ある程度のコントロール(ポテンシオール)を可能にしますが、私はよりエレガントなものを望んでいました。例えば:通常のコンボボックスでは、ハンドルがあればsendmessage()を使ってその内容を操作するCB_ *メッセージを送ることができます。あなたがハンドルを手に入れることができない場合、コンボボックスでそれをどうやって行うのですか?所有者が描かれている(おそらく)と、他のオーナーの一部が描かれている親であることを考えると、ウィンドウを公開していないので、
UIオートメーションよりも優雅なものは見つかりません。 – IInspectable
お待ちしています。どのような変更をお探しですか?また、あなたはおそらく "ウインドウなし"を意味し、 "所有者が描いた"という意味ではありません。 – andlabs
理想的な世界では、私はEnableWindow()を呼び出したり、CB_ *メッセージをコンボボックスに送ることが大好きです – David