1

Windows で自動化しようとしているアプリケーションがあります。アプリケーション内で実行されているウィンドウの場所を見つけて、アプリケーションでいくつかのマウス イベントを自動化する必要があります。

私が自動化しているソフトウェアの以前の化身では、C# の GetWindowText WinAPI 関数 (GetWindowTextLength と組み合わせて) を使用して名前が付けられたプロセスの子ウィンドウを検索できました。

ソフトウェアの製造元は、ソフトウェアを更新し、子ウィンドウの描画方法を更新しました。現在、各ウィンドウにはキャプションがなく、QWidget というクラス名が付けられています。古い戦略を使用して子ウィンドウの場所を見つけることはできなくなりました。QWidget を使用するということは、ウィンドウ システムが Qt フレームワークを使用することを意味すると思います。

QWidget から PInvoke を使用してウィンドウを識別できるデータを取得する方法はありますか?

4

1 に答える 1

1

ここにはいくつかの問題があります。1 つは、別のプロセスから「共有されていない」データを取得できないことです。次のようなメソッドをピンボークすることで、ウィンドウ データを取得できますGetWindowLong。しかし、そのデータで QWidget が何をするかについての特定のデータを知らない限り (もう 1 つの問題)、そのデータでできることはあまりありません。

もう 1 つの問題は、マネージ アプリケーションでほとんどの QT オブジェクトを使用する場合 (C++/CLI と IJW でこれを行うことができます)、アプリケーションで QT アプリケーション オブジェクトを初期化する必要があることです...これがどのように影響するかわかりませんあなたがしたいこと。

于 2012-08-28T17:28:58.507 に答える