Каков наилучший способ определить устройство WinCE и вызвать правильную библиотеку DLL на основе результатов? - PullRequest
1 голос
/ 02 декабря 2010

Я боролся с этим некоторое время. У меня есть разные устройства, на которых мне нужно запустить корпоративное приложение. Он написан с использованием .NET CF 1.1. Оба имеют свои собственные управляемые dll, которые необходимо вызвать, чтобы получить серийный номер из пистолета.

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

Эти dll скопированы с моим программным обеспечением, поэтому я не могу проверить файл на устройстве.

Есть ли что-нибудь, о чем вы, ребята, можете подумать, что позволило бы мне идентифицировать одно устройство поверх другого без жесткого сбоя и позволить без проблем вызвать соответствующий dll?

Я сделал это, используя указанные dll напрямую, а также через отражение (для одной dll мне нужен MethodInfo.invoke, а для другой - просто значение поля).

Любая помощь приветствуется. Спасибо!

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

P / Invoke SystemParametersInfo с SPI_GETOEMINFO, чтобы увидеть, предоставил ли OEM-поставщик какую-либо строку для конкретной платформы, которую вы можете искать. Некоторые OEM-производители также имеют свои собственные конкретные записи реестра для имени платформы, так что вы можете найти это с помощью Remote Registry Viewer, а затем включить его, если найдете.

EDIT

Есть пример этого, для обнаружения производителя сканера штрих-кода не меньше, на MSDN .

0 голосов
/ 31 декабря 2010

Еще одна работа с отражением показала, что я могу правильно перехватывать исключения, и это не приводит к сбою приложения.Мое решение состояло в том, чтобы использовать свойства или методы отражения в зависимости от того, что мне показал проводник объектов, и получать или устанавливать значения, используя различные методы в библиотеке System.Reflection.

...