Форум: "WinAPI";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
ВнизПомогите определить серийный номер флэшки? Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c