Здравствуйте, Win32nipuh, Вы писали:
W>Что для этого нужно на юзерском компьютере? W>Т.е. я хочу в приложении(VС++) взять некоторые данные через WMI, чтобы привязаться к компьюетру. W>Так вот вопрос: может ли WMi не работать на юзерском компьютере? ну там сервис не стартован и т.д.? W>Надежно ли использование WMi запросов?
Ох, поимеете Вы проблем с этой привязкой к железу.
Говорю как человек, который прошел часть этого пути и которого хватило ума в нужный момент стать и задуматься.
Почти все наиболее близкие к аппаратной составляющей характеристики достаются только из kernel-mode.
Да, WMI здесь помогает, но она может быть отключена (это раз), может быть недостаточно прав (это два),
некоторые параметры возвращаются пустыми строками (это три), и на разных компьютерах ситуация разная (это четыре).
А самое главное — ну вытяните Вы эти параметры, а дальше-то с ними что делать ?
Вот у меня на сервере два сетевых интерфейса и один еще виртуальный. Из какого из них
вытягивать MAC ? Из первого ? А если я удалю подключение и создам заново, вдруг второй адаптер станет в
списке первым ? Мой MAC поменяется и программа скажет что я использую нелегально приобретенную версию ?
Идем дальше. Жесткий диск и его популярный серийник.
Пожалуйста — есть некоторые модели винтов, где серийник возвращается как пустая строка.
Кстати, я в свое время привязывался к параметром видеокарты.
Каково же было мое удивление, когда я узнал, что GeForce и Radeon имеют различающиеся API
для доступа к своим параметрам ! То же самое с процессорами Intel/AMD, если пойти чуть
дальше банального CPUID.
Можно еще вытянуть название видеокарты, планок памяти и типа процессора, привязаться к
ключу активации Windows, и т.д. Все будет работать до тех пор, пока программу не потребуется
развернуть в каком-нибудь компьютерном классе с ограничением по количеству рабочих мест.
Тут вдруг опа — все компы имеют (неожиданность, да ?) одинаковые показатели, потому что
были закуплены оптовой партией у одного производителя, там даже номера партий материнских
плат или RAM совпадают, не говоря уже о каких-то хардах.
А еще юзеры постоянно апгрейдят свои компы. Я, к примеру, как минимум раз в полгода примерно
что-нибудь меняю, совершенствую, а раз в 5-6 лет вообще перехожу на принципиально новое оборудование.
Тут вообще без комментариев.
Если программа — ПО на заказ для конторы с вполне определенными требованиями и
специфичным, так сказать, целевым рынком, то дело одно. А если массовый продукт или
shareware, тогда совсем другое.
Но это я все так пишу, ни на что не уповая и не надеясь, просто часок выдался свободный.
Все равно Вы забъете и пойдете писать свой определитель Hardware Id, пока не встретите те же грабли.