WinMXのウィンドウ操作

解決


ハイライト  2006-03-14 20:01:10  No: 94590

環境
Windows XP SP2/Visual Basic 6.0 SP6/WinMX v3.54 beta 4

現在WinMXのウィンドウ(検索、転送等)を操作するプログラムを作っています。ウィンドウハンドル(EnumWindows、EnumChildWindows)、ウィンドウキャプション(GetWindowText)、クラス名(GetClassName)を取得することは可能でした。

ご存知の方もいらっしゃると思いますが、WinMX起動直後は、ネットワークウィンドウがトップウィンドウになっており、タイトルバー直下の他のコマンド(検索、転送、設定、無視等)をクリックすると、それぞれのウィンドウが立ち上がる仕組みになっています。

このように他のコマンドをクリックし、ウィンドウを立ち上げた後であれば、そのウィンドウハンドルなどを取得することは可能ですが、タイトルバー直下のコマンドはコマンドボタンはではなく、ウィンドウハンドルを持っていないようです。事実、http://www.vector.co.jp/soft/win95/prog/se115776.htmlのアプリケーションを使い、ウィンドウハンドルの取得を試みましたが、フォーカスが当たりませんでした

MX Monitorのように起動直後から操作するものを目指しております。最悪、起動後のやり方でもいいのですが、最終手段として皆様のご意見をお聞きしたいと思いました。どうぞよろしくお願いします。


らくをするなら  2006-03-14 23:37:40  No: 94591

UWSCを使ってみるべし。


ハイライト  2006-03-14 23:50:48  No: 94592

ご回答ありがとうございます。
ただ、外部アプリケーションを使うのは最終手段として考えています。やはり方法はないのでしょうか。

ただ、プログラム内でウィンドウサイズを決めて、座標をクリックすることは考えていますが、カーソルが奪われるので極力避けたいと思っています。


魔界の仮面弁士  2006-03-15 01:01:01  No: 94593

# 回答ではありません。
## WinMX を使った事が無いので、画面のイメージがわかない…。

> ウィンドウハンドルを持っていないようです
ウィンドウレスであっても、たとえばタイトルバーの最小化ボタンや
IE のツールバー上のボタンなどのように、"Accessible Explorer" にて
拾える物であれば、OLEACC.DLL を参照設定して、

1. AccessibleObjectFromPoint API で、指定した座標にある
  IAccessible 型のオブジェクトを取得する。

2. accDoDefaultAction メソッドで、そのオブジェクトを[実行]する。

という感じで制御できる可能性がありますね。


ハイライト  2006-03-15 20:39:14  No: 94594

上記のツールをダウンロードして試してみましたが、フォーカスを掴むことができませんでした。この件に関しましては諦めます。いつもお力添えありがとうございます。またよろしくお願いします。


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

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






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