Опять серийный номер HDD, штоп ему...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Опять серийный номер HDD, штоп ему...

Сообщение Antonariy » 28.12.2007 (Пт) 11:21

Помогите, горю!
В моей коллекции определения серийников есть три способа. Первый:
Код: Выделить всё
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMedia")
    For Each objItem In colItems
        wscript.echo objItem.SerialNumber
    Next
Два других в аттачах. Однако ни один из них не работает на одном компе под win2000. Винт там стоит обычный, samsund ide на primary master. А всякие тулзы типа HDDLife определяют на ура. Как они это делают?
Вложения
HDD Info.rar
(10.13 Кб) Скачиваний: 275
HDDSerial.zip
(24.22 Кб) Скачиваний: 285
Лучший способ понять что-то самому — объяснить это другому.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 28.12.2007 (Пт) 13:40

незнаю, что за номер возращает. но попробуй:
Код: Выделить всё
Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Public Function VolumeSerialNumber(ByVal RootPath As String) As String

Dim VolLabel As String
Dim VolSize As Long
Dim Serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim Name As String
Dim NameSize As Long
Dim s As String
Dim ret As Boolean

ret = GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, Flags, Name, NameSize)

...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 28.12.2007 (Пт) 13:43

Это метка тома.
Лучший способ понять что-то самому — объяснить это другому.

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Опять серийный номер HDD, штоп ему...

Сообщение awl100Alex » 18.02.2008 (Пн) 1:24

Antonariy писал(а):Помогите, горю!
... А всякие тулзы типа HDDLife определяют на ура. Как они это делают?


Они это делают прямым обращением к устройству через драйвер. :)

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 18.02.2008 (Пн) 10:55

Поотлаживатся там нереально?
Или собери вариант с выводом подробного лога выполнения, проверь все результаты фызовов функций и паралельно проверяй GetLastError, в одной книжке по отладке написанно, что автор встречался со случаями, когда функция возвращала значение показывающее успешное выполнение, а проверка GetLastError показывала обратное и правильное состояние дел.
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

dr-kvn
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.12.2007 (Пт) 11:41
Откуда: Россия

Сообщение dr-kvn » 24.02.2008 (Вс) 21:47

Цитирую выдержку из топика Dummiel'я:

Поиспражнялись в остроумии, умники?

Теперь загляните на этом же форуме в тему "Методы защиты VB программы от копирования."

http://bbs.vbstreets.ru/viewtopic.php?t=20643&start=0&postdays=0&postorder=asc&highlight=

И посмотрите на код, который сбросил FleX_2004.
Знаешь сам- помоги другому!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 25.02.2008 (Пн) 8:01

Igor_123
Нет.

dr-kvn
Что это было?
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.02.2008 (Вт) 12:04

dr-kvn, объяснись. Срок - сутки.
Lasciate ogni speranza, voi ch'entrate.

dr-kvn
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.12.2007 (Пт) 11:41
Откуда: Россия

Сообщение dr-kvn » 02.03.2008 (Вс) 6:23

Чем я не угодил уважаемому собранию? В чем объясняться?

Был топик Dummel'я по поводу серийного номера компьютера. Там ему популярно объяснили, что не бывает серийного номера компьютера, а бывают серийные номера комплектующих его компонентов.
Там Dummel и привел ссылку на другой топик, где FleX_2004 приводит код вычисления серийного номера винта.

И все, собственно. И вроде как тема моего совета подпадает под тему данного топика?
Знаешь сам- помоги другому!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 02.03.2008 (Вс) 10:52

dr-kvn
Ты сам-то пробовал сходить по этой ссылке? Она ведет в самое начало десятистраничного обсуждения.

Что самое интересное, я не нашел там постов FleX'a :shock:
Куда они делись? Это уже вопрос администрации.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 02.03.2008 (Вс) 11:34

Antonariy
Кто-нибудь помнит userid флэкса или какую-нибудь фразу, по которой можно было бы найти его пост?

А то, всё ещё пожинаем плоды "большой чистки".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

dr-kvn
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.12.2007 (Пт) 11:41
Откуда: Россия

Сообщение dr-kvn » 14.03.2008 (Пт) 7:21

Antonariy писал(а):dr-kvn
Ты сам-то пробовал сходить по этой ссылке? Она ведет в самое начало десятистраничного обсуждения.


Ну, если я привел эту ссылку, значит ходил по этой ссылке. Логично?

И читал все десятистраничное обсуждение!

А вот куда делся Flex - это тоже хотелось бы знать!
Знаешь сам- помоги другому!

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 21.03.2008 (Пт) 17:18

Antonariy
если тебе проблема ещё актуальна, то можно использовать стороннюю библу.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.03.2008 (Пт) 17:38

Какую?
Лучший способ понять что-то самому — объяснить это другому.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 21.03.2008 (Пт) 18:28

Это не совсем номер, но может поищешь в этом направлении?
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 21.03.2008 (Пт) 22:26

Отцы, я видать чего то не понимаю (делаю такой вывод, судя по тому как опытные знатоки мучаются с вопросом). Объясните мне пожалуйста.

А какой Serial Number тогда возвращает банальный FSO ? :oops: :roll:
Код: Выделить всё

    Dim FileSystemObject
    Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
    For Each Drive In FileSystemObject.Drives
        With Drive
                infolog = infolog & "DriveLetter: " & .DriveLetter & vbCrLf
                infolog = infolog & "DriveType: " & .DriveType & vbCrLf
                infolog = infolog & "IsReady: " & .IsReady & vbCrLf
                infolog = infolog & "Path: " & .Path & vbCrLf
                infolog = infolog & "ShareName: " & .ShareName & vbCrLf
           
                 If .IsReady Then
                     infolog = infolog & "SerialNumber: " & .SerialNumber & vbCrLf
                     infolog = infolog & "AvailableSpace: " & .AvailableSpace & vbCrLf
                     infolog = infolog & "TotalSize: " & .TotalSize & vbCrLf
                     infolog = infolog & "FreeSpace: " & .FreeSpace & vbCrLf
                     infolog = infolog & "FileSystem: " & .FileSystem & vbCrLf
                     infolog = infolog & "RootFolder: " & .RootFolder & vbCrLf
                     infolog = infolog & "VolumeName: " & .VolumeName & vbCrLf
                     infolog = infolog & "RootFolder: " & .RootFolder & vbCrLf
                End If
               
                infolog = infolog & vbCrLf
                       
        End With
    Next
    MsgBox infolog, vbInformation, "Disks Info"

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.03.2008 (Сб) 10:57

ALX_2002
Тома. А надо - девайса.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 22.03.2008 (Сб) 15:05

Antonariy
io.dll
в общем, есть мысля другая. если найти как можно посылать команды АТА накопителю, то при посылке команды &HEC можно получить пасспорт накопителя где всё указано, в том числе и его серийный номер. Через эту длл-ку это можно сделать. А как послать обычному порту(например, 1F0 или 0170) команду я незнаю, но точно знаю, что можно...

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 24.03.2008 (Пн) 22:55

Хакер писал(а):ALX_2002
Тома. А надо - девайса.


Задумался. А через свойства диска это где можно найти ? А то с трудом втыкаю где такой параметр. :roll:

dr-kvn
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.12.2007 (Пт) 11:41
Откуда: Россия

Сообщение dr-kvn » 29.03.2008 (Сб) 9:06

Столько всяческих гуру и больших человеков, а проблему раздули!

В аттаче код, про который я говорил выше. Работает на ура, серийник HDD за миллисекунды...
Вложения
HardSN.rar
(93.91 Кб) Скачиваний: 267
Знаешь сам- помоги другому!

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 30.03.2008 (Вс) 11:35

dr-kvn, что это? :?
Прикол еще и в том, что он у меня меняется :)
Вложения
SN.JPG
Скрин
SN.JPG (6.48 Кб) Просмотров: 7079
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 30.03.2008 (Вс) 13:01

Прикол ещё и в том, что все эти ID можно элементарно сменить, добавив свой драйвер в цепочку обработки IRP. Привязка к серийным номерам оборудования - порочная практика.
Изображение

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 31.03.2008 (Пн) 2:19

Привет Antonariy
Смотрю ответов уже много, не знаю, решил проблему или нет, нашёл вот у себя код, может поможет

Удачи
Вложения
HDSN.rar
(6.4 Кб) Скачиваний: 219
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 31.03.2008 (Пн) 4:24

Igor_123, тот же самый вариант, что предложил dr-kvn. На моем рэйде ведет себя прикольно :) .
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 31.03.2008 (Пн) 17:04

Matew писал(а):Igor_123, тот же самый вариант, что предложил dr-kvn. На моем рэйде ведет себя прикольно :) .


Ну а какой у рейда может быть серийник? :?
Сумма серийников входящях в него винтов, деленная на их количество, что ли :)
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 31.03.2008 (Пн) 17:47

вот один из примеров:
Вложения
HDD_SN.rar
(4.54 Кб) Скачиваний: 232

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 01.04.2008 (Вт) 9:10

Последний пример это HDD Info из моего первого поста, два предыдущих - вариации его же. Как только подвернется комп, где HDD Info не работает, проверю, отпишусь.
Лучший способ понять что-то самому — объяснить это другому.

dr-kvn
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.12.2007 (Пт) 11:41
Откуда: Россия

Сообщение dr-kvn » 01.04.2008 (Вт) 18:52

Matew!
Сие есть тайна великая, мраком покрытая!

У меня ноутбук и настольный компы. На обоих все выдает правильно, сверял через BIOS и утилиты. А почему он у тебя так себя ведет - я в растерянности. :(

Мабуть, греческое чо-нить? :)
Знаешь сам- помоги другому!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 90

    TopList