2010-12-13 10 views
1

Я хочу создать окно, которое может отображать текущее содержимое приложения, например Powerpoint или Adobe Reader.Создание окна монитора в реальном времени приложения

Когда я запускаю свое приложение, я сначала должен выбрать, какое из выполняемых в настоящее время приложений необходимо отслеживать в реальном времени. После этого мне нужно получить текущее содержимое выбранного приложения и отобразить его. Поскольку мое приложение будет в режиме реального времени, оно должно будет отображать содержимое выбранного приложения по мере их изменения (с минимальным запаздыванием), а затем отображать его.

Как я понимаю, это в широком смысле состоит из следующих этапов: 1. Выбор приложения, которое я хочу контролировать 2. Get «уведомление», когда содержание этого Приложеинего (клиентской области) изменилось 3. Захвата новое содержание и показать его

Этапы [1] и [3] довольно просты, и я нахожу здесь несколько способов их выполнения. Однако для сцены [2] я все еще не знаю. Кто-нибудь может рассказать о том, как это сделать?

Cheers.

+0

Как вы думаете, это стало намного проще в Windows Vista/7 с DWM и Aero Peek, но я не знаю никаких API-интерфейсов для использования DWM-рендеринга. –

+0

Беглый взгляд на DWM показывает, что он работает с Win7/Vista, а также с версией WDDM. Я, вероятно, не буду применять этот подход, так как хотел бы поддержать все, используя ту же самую кодовую базу, если это возможно. Также не нашел упоминания о XP в его списке поддержки. – Ethan

ответ

1

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

+0

Да, я пробовал это раньше. Я считаю, что должны быть лучшие способы справиться с этим, опрос действительно является грубым и отпадает, когда ничего не существует/работает. – Ethan

2

Вы можете взглянуть на UltraVNC, который выполняет именно то, что вы пытаетесь сделать (он имеет режим одного окна, а также полноэкранный режим). У него есть не менее четырех способов выполнить ваш шаг №2.

+0

Это хороший намек. Позвольте мне взглянуть на это. – Ethan

Смежные вопросы