1

Qt を使用してアプリケーションを作成しました。Qt リストボックスのデータを読みたいと思います。LB_GETTEXT やその他の Windows メッセージに応答しません。別のプロセスからデータを取得する良い方法はありますか?

外部プログラムであるQtプロセスにアクセスできません。C# から LB コンテンツにアクセスする方法を探しています。

結局のところ、必要な操作のサポートを提供することになっている Qt 用のアクセシビリティ プラグインがあります。ただし、私は QT に慣れていないため、アプリケーションをアクセシビリティを許可してビルドする必要があるのか​​ 、それともアプリケーションのオンとオフを切り替えることができる機能なのか (または、アクセシビリティが明示的に無効にされていないデフォルトのビルド アプリケーション) かどうかは不明です。

私が読んだところ、 export QT_ACCESSIBILITY=1 を実行し、qt.confファイルを配置し、アクセス可能なフォルダーをメインルートのQtアプリに配置する必要があると書かれています。QT_ACCESSIBILITY=1 にする方法と、アプリケーションがアクセス可能になるのに十分な場所を完全に理解していないと思います。コンピューターのプロパティの環境変数に QT_ACCESSIBILITY=1 を追加しました。または export QT_ACCESSIBILITY=1 は別のものです。

ありがとう

4

2 に答える 2

2

これらの目的でプロセス間通信を使用することをお勧めします:http://doc.qt.io/archives/qt-4.7/ipc.html

于 2010-12-30T18:29:29.747 に答える
2

Qt は標準の Windows コントロールを使用してウィジェットを実装しないため、簡単に行うことはできません。そのため、標準の Windows API メソッド (関数/メッセージ/Windows IPC) を使用してコンテンツに簡単にアクセスすることはできません。何らかの方法でメモリをハックするか (あまりお勧めしません)、Squishのような Qt をサポートする GUI (テスト) 自動化ツールを使用する必要があります。

LE: Qt Accessible Plug-in をアプリケーションに強制的にロードし、Visual Studio に含まれる Microsoft の Spy++ などの通常のツールを使用して検査を試みることで、このハックを確認することもできます。12を参照してください。

于 2011-01-21T08:49:47.130 に答える