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

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

Я хочу сделать следующее из Python с этим GUI:

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

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

Спасибо,

Майк

1 Ответ

1 голос
/ 02 августа 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...