Перехват, перенаправление, отображение вывода с Python 2.7 - PullRequest
1 голос
/ 22 июня 2011

Я новый программист с небольшим опытом, но я нахожусь в процессе изучения Python 2.7.Я использую Python (x, y) или Spydar, поскольку программы вызываются в Windows 7.

Основные используемые мной пакеты numpy, pil и, возможно, win32gui.

В настоящее время я пытаюсь написать программу для извлечения информации из стороннего программного обеспечения.Это противоречит их желаниям, и они сделали это трудным.Я использую ImageGrab, а затем numpy, чтобы получить некоторые результаты.Однако, как я полагаю, это заставляет меня держать окно, которое я хочу прочитать, в фокусе, что не оптимально.

Мне интересно, есть ли способ перехватить все окно и перенаправить вывод?непосредственно в «виртуальную» копию, просто чтобы она работала в фоновом режиме?

При просмотре демонстраций для win32api, есть скрипт под названием desktopmanager.Я никогда не заставлял его работать, вероятно, так как я использую Windows 7, которая должна создавать новые рабочие столы.Я действительно не знаю, как работают несколько рабочих столов, но если они работают параллельно, возможно, есть способ создать новый рабочий стол вокруг текущего окна.Я не знаю как, пока это просто мысль.

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

1 Ответ

0 голосов
/ 23 июня 2011

Один из подходов, который может сработать, - это сделать что-то вроде этого:

  • получить дескриптор окна (FindWindow () или что-то подобное, есть несколько способов сделать это)
  • получить размеры окна (GetClientRect () или GetWindowRect ())
  • получить контекст устройства для окна (GetWindowDC ())
  • получить данные изображения из окна (BitBlt () или аналогичное)

Вполне возможно, что вам понадобятся повышенные привилегии для доступа к окну dc другого процесса, в этом случае вам может понадобиться ввести код / ​​dll в пространство целевого процесса, чтобы сделать это.

НТН.

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