مرجع المبتدإ (مجموعة من الأكواد)
#5
- أكواد لجلب سيريال : القرص الصلب ، اللوحة الأم ، المعالج ، فلاش ميموري :


33-سيريال القرص:

كود :
function GetVolSN(Volumn:String):string; var sVolName, sFName: Array[0..20] of Char; dwVolSN, dwMaxFNameLen, dwFlag: DWORD; begin result:=''; if GetVolumeInformation(PChar(Volumn), sVolName, 20, @dwVolSN,dwMaxFNameLen, dwFlag, sFName, 20) then result := IntToHex(dwVolSN, 8); end; procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text:=(GetVolSN('c:')); end;
34- معلومات و سيريال الفلاش ميموري أو قطاع القرص C أو D أو ...

كود :
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const kernel32 = 'kernel32.dll'; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Type TVolumeInfo = record Name : String; SerialNumber : DWORD; MaxComponentLength : DWORD; FileSystemFlags : DWORD; FileSystemName : String; end; // TVolumeInfo function GetVolumeInformationA(lpRootPathName: PAnsiChar; lpVolumeNameBuffer: PAnsiChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; var lpMaximumComponentLength, lpFileSystemFlags: DWORD; lpFileSystemNameBuffer: PAnsiChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external 'kernel32.dll' name 'GetVolumeInformationA'; function GetVolumeInformationW(lpRootPathName: PWideChar; lpVolumeNameBuffer: PWideChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; var lpMaximumComponentLength, lpFileSystemFlags: DWORD; lpFileSystemNameBuffer: PWideChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external 'kernel32.dll' name 'GetVolumeInformationW'; function GetVolumeInformation(lpRootPathName: PChar; lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; var lpMaximumComponentLength, lpFileSystemFlags: DWORD; lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external 'kernel32.dll' name 'GetVolumeInformationA'; var Form1: TForm1; implementation {$R *.dfm} function MyGetVolumeInformation( const Drive : Char ) : TVolumeInfo; var lpRootPathName : PChar; // address of root directory of the file system lpVolumeNameBuffer : PChar; // address of name of the volume nVolumeNameSize : DWORD; // length of lpVolumeNameBuffer lpVolumeSerialNumber : DWORD; // address of volume serial number lpMaximumComponentLength : DWORD; // address of system's maximum filename length lpFileSystemFlags : DWORD; // address of file system flags lpFileSystemNameBuffer : PChar; // address of name of file system nFileSystemNameSize : DWORD; // length of lpFileSystemNameBuffer begin GetMem( lpVolumeNameBuffer, MAX_PATH + 1 ); GetMem( lpFileSystemNameBuffer, MAX_PATH + 1 ); try nVolumeNameSize := MAX_PATH + 1; nFileSystemNameSize := MAX_PATH + 1; lpRootPathName := PChar( Drive + ':\' ); if GetVolumeInformation( lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, @lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize ) then begin with Result do begin Name := lpVolumeNameBuffer; SerialNumber := lpVolumeSerialNumber; MaxComponentLength := lpMaximumComponentLength; FileSystemFlags := lpFileSystemFlags; FileSystemName := lpFileSystemNameBuffer; end; // with Result end // if else begin with Result do begin Name := ''; SerialNumber := 1; MaxComponentLength := 1; FileSystemFlags := 1; FileSystemName := ''; end; // with Result end; // else finally FreeMem( lpVolumeNameBuffer ); FreeMem( lpFileSystemNameBuffer ); end; // try end; procedure TForm1.Button1Click(Sender: TObject); var VolumeInfo : TVolumeInfo; flags : String; begin [COLOR=DarkRed]VolumeInfo := MyGetVolumeInformation[/COLOR]( '[COLOR=Blue][B]C[/B][/COLOR]' ); with VolumeInfo do begin if (FileSystemFlags and FS_CASE_IS_PRESERVED) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_CASE_IS_PRESERVED' else flags := 'FS_CASE_IS_PRESERVED'; if (FileSystemFlags and FS_CASE_SENSITIVE) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_CASE_SENSITIVE' else flags := 'FS_CASE_SENSITIVE'; if (FileSystemFlags and FS_UNICODE_STORED_ON_DISK) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_UNICODE_STORED_ON_DISK' else flags := 'FS_UNICODE_STORED_ON_DISK'; if (FileSystemFlags and FS_PERSISTENT_ACLS) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_PERSISTENT_ACLS' else flags := 'FS_PERSISTENT_ACLS'; if (FileSystemFlags and FS_FILE_COMPRESSION) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_FILE_COMPRESSION' else flags := 'FS_FILE_COMPRESSION'; if (FileSystemFlags and FS_VOL_IS_COMPRESSED) <> 0 then if Length( flags ) <> 0 then flags := flags + #13#10#9'FS_VOL_IS_COMPRESSED' else flags := 'FS_VOL_IS_COMPRESSED'; ShowMessage( 'Volume Information For Drive C'#13#10#13#10 + 'Name:'#9 + Name + #13#10 + //'Serial Number:'#9 + Copy( IntToHex( SerialNumber, 0 ), 1, 4 ) + '-' + Copy( IntToHex( SerialNumber, 0 ), 5, 4 )+ #13#10 + 'Serial Number:'#9 + Copy( IntToHex( SerialNumber, 0 ), 1, 8)+ #13#10 + 'Max Component Length:'#9 + IntToStr( MaxComponentLength ) + #13#10 + 'File System Flags:'#13#10#9 + Flags + #13#10 + 'File System:'#9 + FileSystemName ); end; // with VolumeInfo end;


[-] كل من 1 user says قال شكرا ل nabilkeb على المشاركة المفيدة
  • zouaidahmed
الرد


الردود في هذا الموضوع
مرجع المبتدإ (مجموعة من الأكواد) - بواسطة nabilkeb - 10-09-2009, 01:01 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم