Управление различными приложениями (Adobe Reader, Word, Windows Media Player, Powerpoint и т. Д.) Из кода C ++ - PullRequest
2 голосов
/ 26 июля 2011

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

Например, я хотел бы «сказать» Adobe Reader (который имеет фокус) перейти на следующую страницу или «сказать» Windows Media Player, чтобы остановить музыку.

Какой лучший способ сделать это? Я попытался отправить нажатие клавиши в обработчик окна приложения, но это не сработало. Затем я понял, что в обработчике окна есть еще несколько оконных обработчиков, но мне не удалось получить к ним доступ.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Как правило, есть только несколько «приемлемых» решений таких проблем:

Имитация пользовательского ввода

Программная отправка нажатий клавиш и щелчков мыши

  • Плюсы: Совместимость с большинством программ с графическим интерфейсом, о которых вы можете подумать
  • Минусы: Хмуро, плохо справляется с непредвиденным поведением (например, диалоги ошибок).Вы должны знать, с какими окнами вы ожидаете общаться заранее.Диалоги меняются от одной версии к другой, поэтому ваша программа часто перестает работать с новыми выпусками.

Программный API

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

  • Плюсы: гораздо проще программирование, чистота и меньше ошибок, чем симуляция ввода
  • Минусы: очень немногие приложения фактически предоставляют API.А для тех, кто это делает, вы ограничены функциональностью, поддерживаемой API (которая может не включать в себя все, на что способна программа).

Скрипты

Некоторые программы допускают языки сценариев (например, VBScript)

  • Плюсы: те же плюсы, что и у API
  • Минусы: нужно как-то программно заставить программу открывать скрипт, что может илиможет быть нелегко в зависимости от программы.

Что касается этих программ, я не могу комментировать.Я не знаю, предоставляют ли они какой-либо API.Я думаю, что некоторые из них могли бы (медиаплеер, например, я думаю, что некоторые из них).Не цитируйте меня об этом, хотя.Надеюсь, это поможет.

0 голосов
/ 26 июля 2011

Проверьте autoHotkey

http://www.autohotkey.com/

это инструмент, где вы можете создавать сценарии, которые управляют мышью / клавиатурой.

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

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