Получение информации о железе, используя AIR.
Довольно таки часто стали появляться сообщения о защите приложений AIR (привязка к железу или другой информации о компьютере).
Было решено написать тестовую air-программулинку ради "просто, чтобы было".
Поскольу сам AIR в плане получения информации о железе - беспомощен, помощник в виде diskid32 был найден из поста alexcon314.
Тут следует отметить, что получение информации через стандартный эйровский NativeProcess возможно только в случае использования профиля приложения ExtendedDesktop.
[IMG]http://*************/clip/m57729/1311162483-clip-17kb.jpg[/IMG]
Не стал сильно заморачиваться по поводу взаимодействия между классами, просто добавил экземпляр на сцену, отослал событие о том, что я получил инфу от diskid32.exe и получил значение по нужному ключу. То есть в текущей реализации это выглядит примерно так:
private var systemInfo:HWID = new HWID(); public function Main() { addChild(systemInfo); stage.addEventListener("INFO_RETRIEVED", testing); } private function testing(event:Event):void { trace(systemInfo.getKey('Hard Drive Serial Number')); }
Цитата:
Version
Size
DeviceType
DeviceTypeModifier
RemovableMedia
CommandQueueing
VendorIdOffset
ProductIdOffset
ProductRevisionOffset
SerialNumberOffset
BusType
RawPropertiesLength
Vendor Id
Product Id
Product Revision
Serial Number
DiskSize
Hard Drive Serial Number
Hard Drive Model Number
Computer ID
MAC Address
Size
DeviceType
DeviceTypeModifier
RemovableMedia
CommandQueueing
VendorIdOffset
ProductIdOffset
ProductRevisionOffset
SerialNumberOffset
BusType
RawPropertiesLength
Vendor Id
Product Id
Product Revision
Serial Number
DiskSize
Hard Drive Serial Number
Hard Drive Model Number
Computer ID
MAC Address
В исходнике HWID.as внизу в комменте продублировал еще раз список ключей.
Детальную информацию от diskid32 можно получить, меняя параметр detail функции run в true.
Всего комментариев 7
Комментарии
![]() ![]() |
|
DaFive, в очередной раз спасибо за полезную информацию. Хотя в принципе месяц назад проблему решил, но все равно пригодится.
Правильно понял, что это только для всех версий винды? |
![]() ![]() |
|
diskid32.exe - это что за файл? Антивири на него ругаться не станут?
|
![]() ![]() |
|
diskid32.exe - консольная утилита, посредством DeviceIOCtl() опрашивает доступные винты, мак-адрес, формирует по некоему алгоритму ИД компа. Каспер точно не ругается. Видел, вроде, х64 версию, если не путаю ничего.
Исходники ее можно, кстати, самому посмотреть/поправить, убрать "мусор" из вывода, дополнить чем-то своим. GetHardwareInformation - тоже неплохой вариант c намного более широкими возможностями, правда на .NET написан (но где ж его, .NET, сейчас не предустановлено?). Исходник можно взять за основу собственной утилиты навроде diskid32, но там инфы о железе и системе вынимается на 3 порядка больше, хоть залейся. ЗЫ. каспер точно не ругается. |
![]() ![]() |
|
Очень интересна тема. Спасибо.
|
![]() ![]() |
|
Может быть и в нем. Попробуй в классе HWID постепенно убрать вызову функций и посмотреть где валится. У меня на семере (лицензия) работает хорошо.
|
Последние записи от DaFive
- Получение информации о железе, используя AIR. (20.07.2011)