2010-12-30 8 views
1

Qtを使って書かれたアプリケーションがあり、Qtリストボックスでデータを読みたいと思います。 LB_GETTEXTや他のウィンドウメッセージには反応しませんが、別のプロセスからデータを取得する良い方法はありますか?別のプロセスでQtリストボックスの内容に関する情報を取得する方法

私は外部プログラムであるQtプロセスにアクセスできません。私はC#からLBの内容にアクセスする方法を探しています。

Qtのアクセシビリティプラグインは、必要な操作をサポートすることになっています。しかし、私はQTの悩みや、アプリケーションがアクセシビリティを使用してビルドされなければならないかどうか、あるいはどのアプリケーションでもオン/オフできる機能(または少なくともデフォルトのビルドアプリケーション、アクセシビリティは明示的に無効にされない)

QT_ACCESSIBILITY = 1のエクスポートを実行し、qt.confファイルを配置し、アクセス可能なフォルダをメインルートのQtアプリケーションに配置する必要があると言います。私はQT_ACCESSIBILITY = 1にする方法を完全に理解していないと思うし、アプリケーションがアクセス可能になるのに十分なはずです。私のコンピュータのプロパティの環境変数にQT_ACCESSIBILITY = 1を追加しました。あるいは、QT_ACCESSIBILITY = 1のエクスポートは、別のものです。あなたはこれらの目的のためにプロセス間通信を使用する場合があります

おかげ

+0

これは非常に興味深い質問です。役に立つものを見つけられますか?私は[funq](https://github.com/parkouss/funq)と[GammaRay](https://github.com/KDAB/GammaRay/wiki/Getting-GammaRay)について知っています。しかし、彼らはブラックボックスQT GUI自動化のための最良の選択肢のようには見えません。 –

答えて

2
+0

返事ありがとうございますが、私は十分にはっきりしていなかったと思います。私はQtの作成プロセスの作成者ではなく、C#プログラムから使用したい外部プログラムです。それを行う方法。 –

+0

はい、私はあなたがQtプログラムにアクセスしたと仮定しました:) –

2

Qtは標準のWindowsは、このようにすることができます、それはウィジェットです実装するコントロールを使用していないので、あなたは簡単に、それを行うことはできません標準のWindows APIメソッド(関数/メッセージ/ウィンドウipc)を使用してそのコンテンツに簡単にアクセスできません。あなたは何とかそのメモリ(実際には推奨されません)をトラフするか、SquishのようなQtをサポートするgui(testing)自動化ツールを使用する必要があります。

LEは:また、アプリケーションの中にはQtのバリアフリー プラグインの読み込みを強制し、Visual Studioで含まれているMicrosoftのスパイ++のような通常のツールを使用して検査しようとすることで、このハックをチェックすることをお勧めします。 1および2を参照してください。

+0

QtアプリケーションからQtコンテンツにアクセスする方法はありますか?多分Qtクロスプロセスメッセージに応答するでしょうか? (私が言っていることを理解すれば)。 Qtプログラムを作成して、C#アプリケーションから>私のQtプログラムへのアダプタの接続>外部プロセスへのQt呼び出しを作成することができますか?またはそれは不可能 –

+0

QtのIPCメソッドはすべてソースレベルで接続/受け入れられ、処理されなければならないため、そのアプリのソースコードにアクセスできない場合は不可能です。 – Shinnok

+0

沖井さんは多少の魔法の答えを少し待っていて、悲しい顔で恩恵を授けてくれるでしょう。 Squish Qtバージョンはどのように動作しますか?もしあなたが知っているなら(私はQTリストボックスとどのように対話するのでしょうか?) –

関連する問題