HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: Серийный номер для КПК Windows Mobile 6.0
[Ответить]
VictorC [22.04.2008 12:03] Серийный номер для КПК Windows Mobile 6.0:
Разработка ведется в С#. В Windows Mobile 5.0 для получения серийного номера использовал код.
KernelIoControl(IOCTL_HAL_GET_DEVICEID, IntPtr.Zero,
0, outbuff, nBuffSize, ref dwOutBytes)
Все работало хорошо.
В Windows Mobile 6.0 - данный код не возвращает в outbuff серийный номер КПК.
Поиск в интернет и по MSDN не дал результатов - данная тема фактически не рассматривается.
Просьба подсказать, каким образом я могу получить серийный номер КПК в Windows Mobile 6.0
sshd [22.04.2008 17:15] :
ну вообще - в WM6 всё должно работать точно так же, как и в WM5.
а что за девайс?
VictorC [22.04.2008 18:24] :
Напр.
HP iPAQ 114 Classic Handheld
Windows Mobile 6 Classic
Но это проявляется на нескольких девайсах.
dm.litv [05.05.2008 23:58] :
Есть такая проблема!!!
Только что столкнулся!
2 года все работало хорошо через IOCTL_HAL_GET_DEVICEID
(WM3, WM5)
На праздники прислали кучу одинаковых серийников
с WM 6. HP 110 серия (110, 114)
Ответа пока не знаю. Но мне это крайне важно, ибо деньги.
Если чего найду, напишу.
Вроде бы, говорят, GetDeviceUniqueId()
Завтра буду проверять.
Если инфа у тебя какая-то появилась,
и есть желание поделиться -
пиши мылом
<ник_как_в_этом_форуме> @ gmail.com
тут, я думаю, никто не ответит. хотя странно, проблема у всех
должна быть.
Если будут результаты у меня, напишу.
kvv@home [07.05.2008 10:52] :
dm.litv писал(а):
тут, я думаю, никто не ответит. хотя странно, проблема у всех
должна быть.
у нас пока такой проблемы не возникло. хотя проблема тоже актуальна.
тестировали на разных моделях HTC с WM6 - везде id определяется нормально.
dm.litv [13.05.2008 14:45] :
Провёл эксперименты.
Имел в наличии -
hp 114 - 3 экземпляра
asus 626 - 1 экземпляр.
Результат:
на asus работает и IOCTL_HAL_GET_DEVICEID, и GetDeviceUniqueID().
на hp - только GetDeviceUniqueID().
Документация Microsoft говорит, что GetDeviceUniqueID() должна
работать, начиная с СE5.0 . А IOCTL_HAL_GET_DEVICEID должна
_не_ работать ("deprecated"
, начиная с СE6.0
Но производители устройств, естественно, могут делать по-своему
(и каждый по разному).
Для себя мы пока решили так:
Если GetDeviceUniqueID() присутствует в coredll.dll и не даёт ошибку
при вызове, то используем её.
Иначе - используем IOCTL_HAL_GET_DEVICEID.
GetDeviceUniqueID() , конечно, имеет небольшой минус -
она даёт не тот uuid, который можно посмотреть в "Настройках"
девайса, а некий хэш от него. Но это не так важно.
[Ответить]