Автоопределение устройства Windows Mobile программно - PullRequest
1 голос
/ 09 февраля 2010

Я пишу приложение для Windows (полностью написанное на C ++), которое читает файлы с карты памяти на мобильном телефоне под управлением Windows Mobile. Сложность в том, что я не знаю, как заставить мое приложение обнаруживать событие, когда пользователь подключил мобильный телефон к USB-порту ноутбука. Я немного прочитал на MSDN и написал небольшой код, используя RegisterDeviceNotification, который обнаруживает всякий раз, когда USB-диск подключен / удален с ноутбука. Однако я не могу настроить его, чтобы он работал на устройствах типа телефона. Пожалуйста, помогите мне с любыми ссылками / руководствами, которые объясняют это (желательно C ++, поскольку я не знаю .NET или C #).

Спасибо Alok

Ответы [ 3 ]

1 голос
/ 12 февраля 2010

Устройства Windows Mobile используют RNDIS, протокол сетевого интерфейса за кулисами. Следовательно, метод RegisterDeviceNotification все еще работает, но вы ищете DEV_BROADCAST_DEVICEINTERFACE, а не DEV_BROADCAST_VOLUME. (т.е. dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE)

1 голос
/ 09 февраля 2010

Согласно этой статье вы можете использовать RegisterDeviceNotification для получения уведомлений, когда activesync обнаруживает, что устройство подключено / отключено. (См. Вариант 3 в конце статьи)

Это может быть просто вопросом настройки правильного фильтра уведомлений.

0 голосов
/ 14 февраля 2010

Вы можете использовать RAPI или RAPI2 для определения, когда устройство Windows Mobile подключается к ПК через Active Sync или Центр устройств Windows Mobile. RAPI также может быть использован для чтения файлов на карте памяти и многое другое.

RAPI проще программировать, потому что это API на основе C. RAPI2 обладает большей функциональностью, чем RAPI, но является объектно-ориентированным COM API. Если ваши потребности просты, и вы заботитесь только об одном устройстве / соединении одновременно, тогда RAPI достаточно хорош. Для обнаружения соединений используются две функции RAPI: CeRapiInit (блокировка) и CeRapiInitEx (сигнализация события при подключении).

...