Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1188565957
Андрей Пл
2007-08-31 17:12
2008.06.08
Как узнать программно имя машины и IP адрес


2-1211215467
assassin8899
2008-05-19 20:44
2008.06.08
QuickReport


2-1210830069
cvg
2008-05-15 09:41
2008.06.08
Как сделать присваивание в операторе if?


15-1209307105
Turing machine
2008-04-27 18:38
2008.06.08
Turing Machine


2-1210682233
Сергей
2008-05-13 16:37
2008.06.08
Как передать параметр от программы VB в Делфи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский