Перехват, перенаправление, отображение вывода с Python 2.7

1

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

Основными пакетами, которые я использую, являются numpy, pil и потенциально win32gui.

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

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

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

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

Теги:
python-2.7
winapi

1 ответ

0

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

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

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

НТН.

  • 0
    да, это ведет меня примерно на полпути, кажется, мне всегда нужно отображать данные, которые я получаю. Так как конечная цель состоит в том, чтобы превратить его в пустышку, было бы лучше, если бы я мог перенести его в матрицу напрямую, а не на другую картинку. Тем не менее, это здорово, спасибо.

Ещё вопросы

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