Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.08;
Скачать: CL | DM;

Вниз

Помогите определить серийный номер флэшки?   Найти похожие ветки 

 
Sairex ©   (2007-09-19 17:27) [0]

Здравствуйте. Мне необходимо получить серийный номер флэш карты. Подскажите как его получить.
Заранее спасибо.


 
Lacmus ©   (2007-09-19 18:09) [1]

На всякий случай, Вы его где-то видели ?


 
palva ©   (2007-09-19 22:11) [2]

Наверно, ему нужен серийный номер тома, который выдается среди прочего, если выдать команду dir


 
Sairex ©   (2007-09-20 17:11) [3]

Хех... мне нужно просто привязать программу к флэшке. Если подскажите как то буду очень рад


 
Lacmus ©   (2007-09-20 20:22) [4]

http://delphimaster.net/view/1-1189944571/

Lacmus ©   (16.09.07 16:51) [8]

WIN32_DISKDRIVE

Для флеш-диска последняя часть PNPDeviceID - серийный номер

Должен быть метод определения попроще, на данный момент не знаю.


 
mr.Bear   (2007-09-21 12:18) [5]

Посмотрите в реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\

Для каждого нового устройства внутри этой ветки создается раздел. Внутри каждого раздела есть параметры FriendlyName, HardwareID, ParentIdPrefix. Еще есть UINumber, обычно=0.
Для простенькой защиты сойдет.


 
DC-AC   (2007-09-21 12:36) [6]

У меня, например, в Win98, в ветке HKEY_LOCAL_MACHINE\Enum\SCSI есть инфа, что когда-либо были подключены такие накопители (HardwareID, других вышеназванных параметров у меня НЕТ):

JETFLASHTS1GJF2A________8,GenDisk,SCSI\JETFLASHTS1GJF2A________8
KINGSTONDATATRAVELER_2.01,GenDisk,SCSI\KINGSTONDATATRAVELER_2.01
USB_2.0_(FS)_FLASH_DISK_1,GenDisk,SCSI\USB_2.0_(FS)_FLASH_DISK_1

И что же здесь уникального ???


 
mr.Bear   (2007-09-21 12:46) [7]

Помогите определить серийный номер флэшки? [D6, D7, Win2k, WinXP]
в 98 естественно параметров нет. для простенькой защиты сойдет.
Серьезная защита предполагает серьезные исследования и денежные вложения, используйте аппаратные ключи типа Aladdin, Guardant


 
Lacmus ©   (2007-09-21 13:04) [8]

>mr.Bear   (21.09.07 12:18) [5]

"Внук" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\ и есть серийный номер


 
Lacmus ©   (2007-09-21 16:40) [9]

На основе http://delphimaster.net/view/1-1189944571/



const
 SetupApi = "SetupApi.dll";

type
 HDEVINFO = THandle;

 PSP_DEVINFO_DATA = ^SP_DEVINFO_DATA;
 SP_DEVINFO_DATA = packed record
   cbSize: DWORD;
   ClassGuid: TGUID;
   DevInst: DWORD;
   Reserved: DWORD;
 end;

function SetupDiGetClassDevsA(ClassGuid: PGUID; Enumerator: PChar; hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall; external setupapi;
function SetupDiEnumDeviceInfo(DeviceInfoSet: HDEVINFO; MemberIndex: DWORD; DeviceInfoData: PSP_DEVINFO_DATA): boolean; stdcall; external setupapi;
function SetupDiDestroyDeviceInfoList(DeviceInfoSet: HDEVINFO): boolean; stdcall; external setupapi;
function CM_Get_Device_ID_Size(pulLen: PDWORD; dnDevInst: DWORD; ulFlags: DWORD): DWORD; stdcall; external setupapi;
function CM_Get_Device_IDA(dnDevInst: DWORD; Buffer: PChar; BufferLen: DWORD; ulFlags: DWORD): DWORD; stdcall; external setupapi;

const
 CR_SUCCESS = $00000000;

function GetDeviceName(aDevInst: THandle): string;
var
 IDLen: Integer;
begin
 Result := "";
 if (CM_Get_Device_ID_Size(@IDLen, aDevInst, 0) = CR_SUCCESS) and (IDLen > 0) then begin
   SetLength(Result, IDLen);
   if CM_Get_Device_IDA(aDevInst, PChar(Result), IDLen + 1, 0) <> CR_SUCCESS then
     Result := ""
 end
end;

procedure EnumDiskDrive;
const
 GUID_DEVCLASS_DISKDRIVE: TGUID =
   (D1: $4D36E967; D2: $E325; D3: $11CE; D4: ($BF, $C1, $08, $00, $2B, $E1, $03, $18));
var
 hDevInfoSet: HDEVINFO;
 DevInfo: SP_DEVINFO_DATA;
 i: Integer;
begin
 DevInfo.cbSize := sizeof(SP_DEVINFO_DATA);
 hDevInfoSet := SetupDiGetClassDevsA(@GUID_DEVCLASS_DISKDRIVE, nil, 0, 2);
 i := 0;
 if hDevInfoSet <> INVALID_HANDLE_VALUE then begin
   while (SetupDiEnumDeviceInfo(hDevInfoSet, i, @DevInfo)) do begin
     ShowMessage(GetDeviceName(DevInfo.DevInst));
     Inc(i)
   end;
   SetupDiDestroyDeviceInfoList(hDevInfoSet);
 end
end;

procedure TForm69.Button1Click(Sender: TObject);
begin
 EnumDiskDrive
end;



 
Sairex ©   (2007-09-22 14:04) [10]

Хммм интересно... попробую , если все получиться то напишу



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

Текущий архив: 2008.06.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1211177784
WebSQLNeederr
2008-05-19 10:16
2008.06.08
AnsiReplaceText несколько раз и разные замены - как?


15-1209138083
@!!ex
2008-04-25 19:41
2008.06.08
Как настроить интернет через Linux комп?


2-1211196897
Сергей
2008-05-19 15:34
2008.06.08
Подскажите, как вырезать часть строки до слеша?


15-1208872237
No_Dead
2008-04-22 17:50
2008.06.08
Дипломный проект и авторские права


2-1210838406
tytus
2008-05-15 12:00
2008.06.08
как в SendMessage передать строку?