Посл.ответ |
Сообщение |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 13 июня 2006 14:10 · Личное сообщение · #1
Надежность не важна, т.е. можно и из реестра.
Главное побыстрее и без километровых кодов
Или опишите, плииз, вызов CreateFileA/DeviceIoConrtol со всеми ЦИФРОВЫМИ параметрами, без заумных констатн и типов.
| Сообщение посчитали полезным: |
|
Ранг: 79.4 (постоянный) Активность: 0.09↘0 Статус: Участник
|
Создано: 13 июня 2006 14:28 · Личное сообщение · #2
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
Private 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)
If ret Then
s = Format(Hex(Serial), "00000000")
VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
Else
VolumeSerialNumber = "0000-0000"
End If
End Function
на ВБ )
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 13 июня 2006 14:43 · Поправил: 0xy · Личное сообщение · #3
d1v0x
VolumeSerialNumber -- эт не то
Нужен железный серийник IDE (Smart)
Вот как это выглядит для 9x, но я попробовал адаптировать и под NT (NON tested)
Option Explicit
Declare Function CreateFileA& Lib "kernel32" (ByVal fName$, _
Optional ByVal FAccess&, Optional ByVal FShare&, Optional Sequre As Any = 0, _
Optional ByVal CreateMode&, Optional ByVal Attrib&, Optional ByVal Template&)
Declare Function DeviceIoControl Lib "kernel32" (ByVal Handler&, _
ByVal Code&, inBuffer As Any, ByVal inBufSize&, OutBuffer As Any, _
ByVal OutBufSize&, Optional BytesReturned&, Optional Overlop As Any = 0) As Boolean
Private Declare Function FindCloseChangeNotification Lib "kernel32" (ByVal hObject&) As Boolean
Type OutType
GapStart(15) As Byte 'мусор в начале буфера
Info1(19) As Byte ' начало информационного сектора (256 байт)
sn As String * 20 ' серийник
Info2(87) As Byte '
Reserved(127) As Byte ' вторая часть сектора пока не используется
GapEnd(255) As Byte ' мусор в конце буфера (или 3 и 4-я части сектора?)
End Type
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const OPEN_EXISTING = 3
Private Const CREATE_NEW = 1
Public Function FirstIdeSN$(Optional OSPlatform As Byte = 2)
Dim FHandle&, InBuf(31) As Byte, OutBuf As OutType, BytesReturned&
InBuf(1) = &H2 ' готовим комманду запроса инфы о первом ide-винте
InBuf(5) = &H1
InBuf(6) = &H1
InBuf(9) = &HA0
InBuf(10) = &HEC
On Error GoTo ExitSub
Select Case OSPlatform
Case 1 ' Win 9x
FHandle = CreateFileA("\\.\SMARTVSD", , , , CREATE_NEW)
Case 2 ' Win NT
FHandle = CreateFileA("\\.\PhysicalDrive" & "0", _
GENERIC_READ Or GENERIC_WRITE, _
FILE_SHARE_READ Or FILE_SHARE_WRITE, _
ByVal 0&, _
OPEN_EXISTING, _
0&, _
0&)
End Select
If FHandle = -1 Then Exit Function
If FHandle = 0 Then Exit Function
If DeviceIoControl(FHandle, &H7C088, InBuf(0), 32, OutBuf, 528, BytesReturned) Then Else GoTo ExitSub
If BytesReturned = 0 Then GoTo ExitSub
FirstIdeSN = OutBuf.sn
ExitSub:
FindCloseChangeNotification (FHandle)
End Function
| Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 13 июня 2006 14:52 · Личное сообщение · #4
0xy
Посмотри в аттаче, может подойдет 30ae_13.06.2006_CRACKLAB.rU.tgz - GetIdeDiskSerialNumber.rar
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 13 июня 2006 18:34 · Личное сообщение · #5
Пасиб, поковыряю (дотя делфя для меня--ИнЯз
А пока присобачил дополнение к своему варианту (исправил предыдущий пост)-- теперь вроде должно во всех осях работать
Будет время -- попробуй запустить, а то нету у меня NT под рукой. В 9x точно работает.
ЗЫ
А как можно узнать модель CD-Roma?
| Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 13 июня 2006 19:03 · Личное сообщение · #6
0xy
Нет проблем. Учи ИнЯз
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 16.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 13 июня 2006 19:20 · Личное сообщение · #7
У меня есть целых три кода на Делфи. Выложу здесь все три, извиняюсь за три поста. a0c2_13.06.2006_CRACKLAB.rU.tgz - ScsiSN.zip
| Сообщение посчитали полезным: |
Ранг: 16.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 13 июня 2006 19:21 · Личное сообщение · #8 |
Ранг: 16.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 13 июня 2006 19:21 · Личное сообщение · #9 |
Ранг: 79.4 (постоянный) Активность: 0.09↘0 Статус: Участник
|
Создано: 15 июня 2006 14:19 · Личное сообщение · #10
кароч вот сорец на ВБ то, что ты просил...
у мя ХР показывает оба харда... на 9х - хз... 347b_15.06.2006_CRACKLAB.rU.tgz - Disk_Serial Number HARD.rar
| Сообщение посчитали полезным: |
Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 февраля 2007 07:58 · Личное сообщение · #11
В продолжение темы...
А как можно определить, на каком физическом диске находится тот или иной логический раздел (чтобы потом можно было вытащить серийник, используя IdeSN)?
| Сообщение посчитали полезным: |
Ранг: 8.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 06 февраля 2007 10:13 · Личное сообщение · #12
ребята, тут все такие умные...
подскажите как на пользовательском уровне получить сериал scsi винта, а?!
| Сообщение посчитали полезным: |
Ранг: 516.1 (!), 39thx Активность: 0.28↘0 Статус: Участник
|
Создано: 07 февраля 2007 05:20 · Личное сообщение · #13
YoungBastard, в глазки долбишься? седьмой пост с конца
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 07 февраля 2007 06:07 · Личное сообщение · #14
можно ещё поковырять генерацию hwid аспра
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 8.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 07 февраля 2007 09:14 · Поправил: YoungBastard · Личное сообщение · #15
Av0id
я видел этот код 1000 раз, но он меня не устраивает
меня интересует код который сможет без использования SMART и WMI на пользовательском уровне с самыми низкими привилегиями получать серийники SCSI винтов без использования сторонних драйверов.
если кто знает как такое осуществить, то буду благодарен
а на счет hwid у аспра это мысль...
| Сообщение посчитали полезным: |