Использование Python для отправки / получения текста из программы с графическим интерфейсом

1

Я использую PyWin32 win32process.CreateProcess для запуска GUI-программы, которая имеет функциональность, которую я хочу использовать в классе Python.

Я хочу сделать следующее из Python с этим графическим интерфейсом:

  • отправляет текст в отдельные окна в графическом интерфейсе (который, как представляется, меняет идентификаторы каждый раз, когда я создаю этот процесс, если верить WinSpy ++),
  • кнопки кликов в графическом интерфейсе для настройки и инициирования расчета и
  • извлекает результат вычисления из графического интерфейса (который позволяет либо выводить текст в графическом интерфейсе, либо файл с сохраненным файлом).

Быстрый вопрос: какие функции Python/PyWin32 следует исследовать для выполнения этих задач? Я не ищу фактический код, просто область, которую я должен исследовать, чтобы научиться самому делать это. Я просмотрел большую часть обучения Python, программирования Python и программирования на Python на Win32 и не распознал ответ, если он там.

Спасибо,

Mike

Теги:
pywin32

1 ответ

1
Лучший ответ

То, что вы хотите сделать, сложно, и я не уверен, что вы можете это сделать с Python. Я могу опубликовать только некоторые указатели, но не могу гарантировать, что это правильное направление.

Что касается отправки текста в отдельные окна - есть функция SendMessage - вам, вероятно, нужно будет отправлять свои данные в виде сообщений с нажатыми клавишами по желанию окно. Что касается аргумента hWnd, который принимает SendMessage - вы должны получить его, вызвав функцию EnumChildWindows или аналогичную.

Получение результата еще сложнее - я думаю, вам нужно заменить WndProc целевого окна на то, которое будет сохранять вывод для вас во время его печати. Вы можете заменить WndProc на SetWindowLong (возможно).

Это должно быть возможно, но лично я сделал бы все, чтобы избежать кодирования чего-то подобного.

Еще одна вещь - это не совсем вопрос, связанный с python. Попробуйте найти код C/С++, выполнив что-то подобное с Win32API и попробуйте перевести его на Python. Найдите SO для ресурсов WinAPI. Если вы в отчаянии, то это...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню