02-04-2009, 12:58 PM
04-04-2009, 08:49 PM
kachwahed كتب :أبحث عن طريقة لاستخراج الرقم التسلسلي الحقيقي Physical (وليس Logic) لـ USB.
في البداية السلام عليكم
أخي العزيز kachwahed
أرفقت لك تطبيق خفيف جدا لي منذ فترة
مع نسخة لدلفي 2007, يعمل ايضا على النسخة السابعة
باذن الله تجد فيه مبتغاك
ملاحظة: يجب عليك تعديل داخل الوحدة على الرقم المنطقي الذي يعطيه النظام
حتى تتمكن من الحصول على الرقم التسلسلي المطلوب
اذا أردت تحسينه أو استغلاله لك الحرية
و السلام.
أخي العزيز kachwahed
أرفقت لك تطبيق خفيف جدا لي منذ فترة
مع نسخة لدلفي 2007, يعمل ايضا على النسخة السابعة
باذن الله تجد فيه مبتغاك
ملاحظة: يجب عليك تعديل داخل الوحدة على الرقم المنطقي الذي يعطيه النظام
حتى تتمكن من الحصول على الرقم التسلسلي المطلوب
اذا أردت تحسينه أو استغلاله لك الحرية
و السلام.
04-04-2009, 10:56 PM
بوركت أخي، الله يجزيك كل خير
أحسن الله إليك وبارك الله فيك
لحد الآن هناك متغير غير معرف (استعمال دلفي 7):
أعتقد أن هذا المثال يعيد الرقم التسلسلي Physical وليس Logic، باستعمال الدالة GetVolumeInformation، كانت لدي دالة مشابهة:
شكرا على كل حال.
أحسن الله إليك وبارك الله فيك
لحد الآن هناك متغير غير معرف (استعمال دلفي 7):
PHP كود :
[Error] HDSNE.dpr(11): Undeclared identifier: 'MainFormOnTaskbar'
PHP كود :
function DriveGetInfoKey( const _drive , _key: string ): string;
var
f_Label , f_FileSystemName: string;
f_LongName , f_FileSystemFlags: DWORD;
pf_Serial: PDWORD;
f_Serial: integer;
begin
Result:= '';
if _drive = '' then Exit;
Setlength( f_Label , 255 );
Setlength( f_FileSystemName , 255 );
GetMem( pf_Serial , 255 );
GetVolumeInformation( PChar( _drive + '\' ) , PChar( f_Label ) , 255 ,
pf_Serial ,
f_LongName , f_FileSystemFlags , PChar( f_FileSystemName ) , 255 );
f_Serial:= pf_Serial^;
FreeMem( pf_Serial , 255 );
if _key = 'DLABEL' then Result:= string( PChar( f_Label ) )
else if _key = 'DSERIAL' then
Result:= Copy( inttohex( f_Serial , 8 ) , 1 , 4 ) + '-' +
Copy( inttohex( f_Serial , 8 ) , Length( inttohex( f_Serial , 8 ) )
- 3 , 4 )
else if _key = 'DLONGNAME' then begin
if f_LongName = 255 then
Result:= '255'
else
Result:= '0';
end
else if _key = 'DSYSTEM' then
Result:= string( PChar( f_FileSystemName ) )
end;