Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > DaFive

Рейтинг: 5.00. Голосов: 2.

Получение информации о железе, используя AIR.

Запись от DaFive размещена 20.07.2011 в 16:59
Обновил(-а) DaFive 20.07.2011 в 17:05

Довольно таки часто стали появляться сообщения о защите приложений AIR (привязка к железу или другой информации о компьютере).
Было решено написать тестовую air-программулинку ради "просто, чтобы было".
Поскольу сам AIR в плане получения информации о железе - беспомощен, помощник в виде diskid32 был найден из поста alexcon314.

Тут следует отметить, что получение информации через стандартный эйровский NativeProcess возможно только в случае использования профиля приложения ExtendedDesktop.

[IMG]http://*************/clip/m57729/1311162483-clip-17kb.jpg[/IMG]

Не стал сильно заморачиваться по поводу взаимодействия между классами, просто добавил экземпляр на сцену, отослал событие о том, что я получил инфу от diskid32.exe и получил значение по нужному ключу. То есть в текущей реализации это выглядит примерно так:
Код AS3:
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'));
}
Список ключей, которые держит diskid32 (всякую лабуду вида первые 255 байт буфера, а так же то, что в windows 7 не выдается из-за ограничения прав - убрал):
Цитата:
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
В общем реализация ни на что не претендует, кто захочет - парсер напишет сам (сейчас просто смотрятся строки, в которых есть инфа виде "ключ = значение" или "ключ : значение", остальное вырезается за ненадобностью). В архиве сорс для CS5, а так же 2 класса для сборки вручную.

В исходнике HWID.as внизу в комменте продублировал еще раз список ключей.

Детальную информацию от diskid32 можно получить, меняя параметр detail функции run в true.
Вложения
Тип файла: rar hwid.rar (365.7 Кб, 319 просмотров)
Всего комментариев 7

Комментарии

Старый 20.07.2011 19:44 Astraport вне форума
Astraport
 
Аватар для Astraport
DaFive, в очередной раз спасибо за полезную информацию. Хотя в принципе месяц назад проблему решил, но все равно пригодится.

Правильно понял, что это только для всех версий винды?
Старый 20.07.2011 19:46 Astraport вне форума
Astraport
 
Аватар для Astraport
diskid32.exe - это что за файл? Антивири на него ругаться не станут?
Старый 21.07.2011 08:43 alexcon314 вне форума
alexcon314
diskid32.exe - консольная утилита, посредством DeviceIOCtl() опрашивает доступные винты, мак-адрес, формирует по некоему алгоритму ИД компа. Каспер точно не ругается. Видел, вроде, х64 версию, если не путаю ничего.
Исходники ее можно, кстати, самому посмотреть/поправить, убрать "мусор" из вывода, дополнить чем-то своим.
GetHardwareInformation - тоже неплохой вариант c намного более широкими возможностями, правда на .NET написан (но где ж его, .NET, сейчас не предустановлено?). Исходник можно взять за основу собственной утилиты навроде diskid32, но там инфы о железе и системе вынимается на 3 порядка больше, хоть залейся.
ЗЫ. каспер точно не ругается.
Старый 21.07.2011 10:59 DaFive вне форума
DaFive
 
Аватар для DaFive
alexcon314 подробную инфу дал
Проверял на каспере, авире, ноде и avg. Ни один не ругнулся. И да, только для винды все это. В линуксе наверное есть собственная консольная лабуда для получения инфы.
Старый 09.08.2011 19:07 ~~~ вне форума
~~~
 
Аватар для ~~~
Очень интересна тема. Спасибо.
Старый 10.08.2011 19:01 Astraport вне форума
Astraport
 
Аватар для Astraport
DaFive, не знаю в чем причина, но созданная программа не хочет запускаться из под W7. В дебаг режиме или обычном запуске с Flash Buider`а - все нормально, а нормально скомпилириванное и установленное Air приложение не работает. Висит в процессе, но не открывается.
Перепробовал массу вариантов, отключал антивирусы - не запускается. Удаляю new HWID() - запускается.
Может причина в ExtendedDesktop?
Старый 10.08.2011 19:26 DaFive вне форума
DaFive
 
Аватар для DaFive
Может быть и в нем. Попробуй в классе HWID постепенно убрать вызову функций и посмотреть где валится. У меня на семере (лицензия) работает хорошо.
 
Последние записи от DaFive

 


Часовой пояс GMT +4, время: 03:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.