Как получить информацию о содержимом списка Qt в другом процессе

Я получил приложение, написанное с использованием Qt, и я хотел бы прочитать данные в списке Qt. Он не отвечает на LB_GETTEXT или другие сообщения Windows, есть ли хороший способ получить данные из другого процесса?

У меня нет доступа к процессу Qt, его внешней программе. Я ищу способ доступа к содержимому LB из C#.

Как оказалось, есть плагин Accessibility для Qt, который должен обеспечивать поддержку необходимых операций. Однако я не согласен с QT, и мне неясно, нужно ли создавать приложение с разрешенной доступностью, или это функция, которую можно включать и выключать для любого приложения (или, по крайней мере, приложения для сборки по умолчанию, при котором доступ не отключается явно).

Я прочитал, и он говорит, что вам нужно запустить экспорт QT_ACCESSIBILITY=1, поместить файл qt.conf и поместить доступную папку для приложения Qt в основной корень. Я думаю, что я не совсем понимаю, как включить QT_ACCESSIBILITY=1, и там, где это должно быть достаточно, чтобы приложение стало доступным. я добавил QT_ACCESSIBILITY = 1 в переменные окружения в свойствах моего компьютера, разве это поможет? Или экспорт QT_ACCESSIBILITY = 1 это что-то другое.

Спасибо

2 ответа

Возможно, вы захотите использовать межпроцессное взаимодействие для этих целей: http://doc.qt.io/archives/qt-4.7/ipc.html

Вы не можете легко сделать это, так как Qt не использует стандартные элементы управления Windows для реализации своих виджетов, поэтому вы не можете легко получить доступ к его содержимому, используя стандартные методы Windows Api (functions/messages/windows ipc). Вам нужно будет каким-то образом взломать его память (не очень рекомендуется) или использовать какой-нибудь графический инструмент для автоматизации тестирования, поддерживающий Qt, такой как Squish.

Л.Э.: Возможно, вы также захотите проверить этот взлом, принудительно загрузив подключаемый модуль Qt Accessible в приложение, а затем попытаться проверить с помощью обычных инструментов, таких как Microsoft Spy++, включенных в Visual Studio. Смотрите 1 и 2.

Другие вопросы по тегам