Показать сообщение отдельно
Старый 26.07.2010, 14:08
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Насчет интерфейса для запросов WMI, ну что ж.. вобщем-то можно свой AS-класс-обертку написать, который юзает (или расширяет) PScript, формируя по какоЙ-то схеме стандартизованный запрос и вставляет его в шаблон скрипта)).
WMI - необъятная штука, сделать что-то лучше, чем имеющийся скриптовый интерфейс не представляется возможным.
Вот кстати неплохая реализация на C#
http://www.codeproject.com/KB/system...formation.aspx

Собственно, я изначально старался уйти от "оберток", предоставляя доступ к АПИ системы на возможно низком уровне. Надо что-то свое - расширяйтесь.

Примеры http://www.script-coding.info/WMI_HardWare.html

Но идея с GUID мне кажется не менее плодотворной. GUID'ы назначаются при установке винды (или каких-то последующих глобальных пертурбациях, типа установки девайса, создания пользователей и т.п.). Так что уникальность тут тоже хорошая.

И да, на ты, конечно.

Добавлено через 3 часа 3 минуты
Что-то зацепило меня..
вот еще фришная тулза
http://www.winsim.com/diskid32/diskid32.html

юзать примерно так: var str:String = PSystem.execStdOut("diskid32.exe");
и распарсить строку. Строка получается такого вида:
Цитата:
To get all details use "diskid32 /d"

Trying to read the drive IDs using physical access with admin rights

Drive 0 - Primary Controller - - Master drive

Drive Model Number________________: [ST3200422AS]
Drive Serial Number_______________: [ 3LJ2PGE1]
Drive Controller Revision Number__: [3.01]
Controller Buffer Size on Drive___: 8388608 bytes
Drive Type________________________: Fixed
Drive Size________________________: 200048565760 bytes

Trying to read the drive IDs using the SCSI back door

Drive 2 - Secondary Controller - - Master drive

Drive Model Number________________: [ST3200422AS]
Drive Serial Number_______________: [ 3LJ2PGE1]
Drive Controller Revision Number__: [3.01]
Controller Buffer Size on Drive___: 8388608 bytes
Drive Type________________________: Fixed
Drive Size________________________: 200048565760 bytes

Trying to read the drive IDs using physical access with zero rights

**** STORAGE_DEVICE_DESCRIPTOR for drive 0 ****
Vendor Id = []
Product Id = [ST3200422AS]
Product Revision = [3.01]
Serial Number = []

**** DISK_GEOMETRY_EX for drive 0 ****
Disk is fixed
DiskSize = 200048565760

Trying to read the drive IDs using Smart

Drive 0 - Primary Controller - - Master drive

Drive Model Number________________: [ST3200422AS]
Drive Serial Number_______________: [ 3LJ2PGE1]
Drive Controller Revision Number__: [3.01]
Controller Buffer Size on Drive___: 8388638 bytes
Drive Type________________________: Fixed
Drive Size________________________: 200048565760 bytes

Hard Drive Serial Number__________: 3LJ2PGE1

Hard Drive Model Number___________: ST3200422AS

Computer ID_______________________: 652946811

MAC Address: 00-17-9A-C3-91-C2

1
1
не хочется расширение .ехе - переименуй в .dll, var str:String = PSystem.execStdOut("diskid32.dll"); тоже будет работать.
Кстати и сорцы это штуки есть на сайте, можешь скомпилить под себя и юзать чисто то, что тебе нужно без лишнего мусора.
Насколько я понял
Цитата:
Computer ID_______________________: 652946811
это действительно ид компа. В сорсах значение этой переменной хитро сформировано и она имеет тип __int64, если что.
Думаю, это то, что надо.


Последний раз редактировалось alexcon314; 26.07.2010 в 17:30.