Вниз
Скачать: CL | DM;

Серийный номер диска   Найти похожие ветки 

 
dima1234   (2005-08-08 16:49) [0]

Необходимо считать серийный номер CD-диска. Нужно это для создания защиты от копирования.
Поискал в инете, нашел, что надо плясать от DeviceIoControl, но документации не нашел...
Если кто-нибудь сталкивался с подобным вопросом, подскажите хоть что-нибудь.


 
Ботвин Дмитрий   (2005-08-08 17:10) [1]

Думается сначала надо узнать имя дисковода, а по ней серийный
номер, т.е:

Буква CD-ROM:
function GetFirstCDROMDrive: char;
var
  drivemap, mask: DWORD;
  i: integer;
  root: string;
begin
  Result := #0;
  root := "A:\";
  drivemap := GetLogicalDrives;
  mask := 1;
  for i := 1 to 32 do
  begin
    if (mask and drivemap) <> 0 then
      if GetDriveType(PChar(root)) = DRIVE_CDROM then
      begin
        Result := root[1];
        Break;
      end;
    mask := mask shl 1;
    Inc(root[1]);
  end;
end;

А серийник:
function GetHardDiskSerial(const DriveLetter: Char): string;
var
 NotUsed:     DWORD;
 VolumeFlags: DWORD;
 VolumeInfo:  array[0..MAX_PATH] of Char;
 VolumeSerialNumber: DWORD;
begin
 GetVolumeInformation(PChar(DriveLetter + ":\"),
   nil, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
   VolumeFlags, nil, 0);
 Result := Format("Label = %s   VolSer = %8.8X",
   [VolumeInfo, VolumeSerialNumber])
end;


 
Poirot ©   (2005-08-08 17:37) [2]

Угу, тока вот этот номер корячится просто а потом где хранить то, с чем проверять?! :)
Вот через первое и пляши + см таки MSDK :)


 
MetalFan ©   (2005-08-08 18:47) [3]

GetHardDiskSerial
ага, и для ЦД тоже сработает %)


 
MetalFan ©   (2005-08-08 18:48) [4]

да только толка от этого мало...


 
Ded Moroz ©   (2005-08-08 21:52) [5]

2 dima1234

Должен тебя разочаровать. На CD-болванке НЕТ НИЧЕГО УНИКАЛЬНОГО!
Там просто пустая матрица. Серийный номер ЛЕГКО задается/копируется при записи. Я тоже раньше думал к номеру привязываться...


 
dima1234   (2005-08-09 08:27) [6]

GetVolumeInformation не подходит, т.к. вместо серийника он возвращает номер файловой системы, кот. меняется при записи и остается при снятии образа.
А на болванке все таки есть уникальная ATIP информация, единственно ее можно получить если болванка не пустая.
Работа с DeviceIoControl упирается в Microsoft DDK, точнее в ntddcdrm.h, может у кого то есть ссылка на перелопаченный этот h на pas?
Или подскажите какие методы еще есть? Не хочеться писать отдельную dll с функцией проверки серийника...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1124611801
Galiaf
2005-08-21 12:10
2005.10.02
Чтение / запись.


11-1107750248
http://microsoft.com
2005-02-07 07:24
2005.10.02
В MCK объявить нужные модули


1-1126100482
avsam
2005-09-07 17:41
2005.10.02
тип файла (bmp или jpeg)?


1-1126697212
kolos_rus
2005-09-14 15:26
2005.10.02
Как определить объект на котором установлен фокус?


14-1126619202
Михаил (Киров)
2005-09-13 17:46
2005.10.02
Main Menu




   Наверх