Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Номер жесткого диска Добавлено: 06.03.08 02:05  

Автор вопроса:  Иван | Web-сайт: www.harami.ru
Глубокоуважаемые гуру,
Моя программа (VB6) защищена привязкой к заводскому номеру винчестера и прекрасно работает под всеми ОС от Win98 до XP. Но под Вистой возникла проблема: программа защиты просто не видит физического жесткого диска. Это что, Виста не пускает прочесть номер винчестера или API-функции устарели?

Проверка производилась так:
Private Sub NoMycompSP()
    Dim VersParams As GETVERSIONOUTPARAMS, _
        scip As SENDCMDINPARAMS, _
        IdOutCmd As SENDCMDOUTPARAMS
    Dim cbRead As Long, bIDCmd As Byte, i As Long, l As Long, hDrive As Long

    Do
        Call RtlZeroMemory(VarPtr(IdOutCmd), Len(IdOutCmd))
        hDrive = CreateFile("\\.\PhysicalDrive" & CStr(i), GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or

FILE_SHARE_WRITE, 0&, OPEN_EXISTING, 0&, 0&)
'Выходим, если диска с очередным порядковым номером не существует (hDrive = -1)
'Это ключевой момент. Во всех ОС -1 получается, когда цикл перебрал все диски и больше нет, а в Висте сразу выдается -1
        If hDrive = INVALID_HANDLE_VALUE Then Exit Do

ЗДЕСЬ ОПРЕДЕЛЯЕМ И ЗАПОМИНАЕМ СЕРИЙНЫЕ НОМЕРА ДИСКОВ

     Loop

ЗДЕСЬ ПРОВЕРЯЕМ, ЕСТЬ ЛИ СРЕДИ СЕРИЙНЫХ НОМЕРОВ НУЖНЫЙ НОМЕР

End Sub

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 06.03.08 03:13
.NET
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=.NET+HDD+Serial+Number&lr=&aq=f

WMI
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2";)
Set physicalDrives = objWMIService.ExecQuery("Select * from Win32_PhysicalMedia";)
For Each obj in physicalDrives
    Wscript.Echo obj.Tag & " Serial Number: " & obj.SerialNumber
Next


API
http://www.planetsourcecode.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=28069&strZipAccessCode=tp%2FS280696101
(лично тестил на висте)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам