Что нового

[Автоматизация] Скрипт по сбору информации о конфигурации компьютера

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Добрый день,
Версия AutoIT: Version 3.3.8.0
Описание:программа по сбору информации о железе компьютера, и отправкой данных в базу SQL на сервере.
Примечания:Необходимо что бы скрипт выдергивал серийные номера периферии (монитор, принтер, сканер и т.д.).
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Необходимо что бы скрипт выдергивал серийные номера периферии (монитор, принтер, сканер и т.д.).
Насколько мне известно windows не хранит в себе серийные номера (мониторов, принтеров, сканеров), только модель, производителя, id устройсва и прочее.
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
ну на VBS это возможно, а здесь что никак?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
beliy [?]
не хранит в себе серийные номера (мониторов, принтеров, сканеров)
Ну почему же. Это зависит от производителя и модели.


Добавлено:
Сообщение автоматически объединено:

ZeVSalt [?]
ну на VBS это возможно, а здесь что никак?
И здесь можно. Есть замечательная библиотека от Yashied`а, WinAPIEx.au3 в ней есть функция _WinAPI_UniqueHardwareID, вот её и смотрите.
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Насколько мне известно функция _WinAPI_UniqueHardwareID не работает с периферийными устройствами только Материнка, биос, процессор, винт...
не хранит в себе серийные номера (мониторов, принтеров, сканеров)

Ну почему же. Это зависит от производителя и модели.
Т.э. вы соглашаетесь что скрипт будет не универсальным и не будет гарантировано вытаскивать серийники?
Для справки, с помощью специализированных утилит на моем железе поле s/n, для выше перечисленых устройств, было только для монитора и то значение было пустое.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
ZeVSalt [?]
ну на VBS это возможно, а здесь что никак?
приведи скрипт на VBS. с переводом кода нав AutoIt проблем возникнуть не должно
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
beliy [?]
Т.э. вы соглашаетесь что скрипт будет не универсальным
;D
Поймите, заявлять о том что
Насколько мне известно windows не хранит в себе серийные номера (мониторов, принтеров, сканеров)
как минимум не корректно, потому как
Garrett [?]
Это зависит от производителя и модели.
;)

Что же касается универсальности, по максимуму воплотили в _WinAPI_UniqueHardwareID
 

beliy

Продвинутый
Сообщения
372
Репутация
72
2 Garrett
Можно пример для функции _WinAPI_UniqueHardwareID для периферийных устройств?
 

Rjevsky

Новичок
Сообщения
102
Репутация
4
Делал для работы подобную программу с накоплением в EXCEL. ID оборудования не заморачивался правда. Зато Отлично собирает инфу по сети.
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Вот скрипт VBS, но он маленько не подходит по формату передачи данных на сервер, необходимо сделать передачу в базу sql.
Списывался с автором, обещал помочь, но уже больше полугода молчит, и не откликается.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
beliy [?]
Можно пример для функции _WinAPI_UniqueHardwareID для периферийных устройств?
Вы действительно не понимаете, о чём я вам говорю или вы сели на "ушастого"
Хотя, дело ваше. :smile:
№1
_WinAPI_UniqueHardwareID для периферийных устройств
Если бы вы читали справку, то знали бы какими флагами обладает эта функция.
№2
[?]
Насколько мне известно windows не хранит в себе серийные номера...мониторов, принтеров, сканеров
Вам нужен пример, пожалуйста. Сразу оговорюсь, что информация о вашем мониторе может и не содержать серийного номера, однако название модели, должно быть. Это зависит от производителя.
Код:
$sDefault_Monitor = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\Default_Monitor", 1)
$sDriver = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\Default_Monitor\" & $sDefault_Monitor, "Driver")
$sMatchingDeviceId = StringRegExpReplace(RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\" & $sDriver, "MatchingDeviceId"), ".*?\\(.*?)$", "$1")
$sDefault_Monitor = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\" & $sMatchingDeviceId, 1)
$sDeviceParameters = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\" & $sMatchingDeviceId & "\" & $sDefault_Monitor, 1)
$bEDID = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\" & $sMatchingDeviceId & "\" & $sDefault_Monitor & "\" & $sDeviceParameters, "EDID")

;~ For $i = 1 To BinaryLen($bEDID)
;~ 	ConsoleWrite(Chr(BinaryMid($bEDID, $i, 1)))
;~ Next

$sText = BinaryMid($bEDID, 78, 13)
$sName = BinaryMid($bEDID, 96, 13)
MsgBox(4096, "", "Name:" & @TAB & BinaryToString($sName) & @CRLF & "S/N:" & @TAB & BinaryToString($sText) & @CR)
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
не выдает ничего ни номера ни модели
а вот этот скрипт выдает Монитор:AOC/919WСерийный номер:AQGA9HA030354
 

beliy

Продвинутый
Сообщения
372
Репутация
72
_WinAPI_UniqueHardwareID для периферийных устройств

Если бы вы читали справку, то знали бы какими флагами обладает эта функция.

Читал, поэтому и спросил - видать я не правильно понял Вашу фразу
Что же касается универсальности, по максимуму воплотили в _WinAPI_UniqueHardwareID


Кстати, как вариант, можно попытаться написать надстройку для специализированных утилит типа everest или aida64? которые поддерживают работу в скрытом режиме, работу с ключами запуска +могут делать отчет прямо в Mysql
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
зачем нужна надстройка для утилит которые сами по себе норм работают, задача сделать без них
 

arseni

Новичок
Сообщения
1
Репутация
0
А как определить оборудование через AutoIt?
 
Верх