دلفي تعليم
مرحبا بكم ايها الزئر أو الزائرة الكريمين

مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  medreg في 31/1/2015, 6:43 pm

السلام عليكم ورحمة الله تعالى
هذا الكود يعمل على الويندوز xp
ولكن لا يعمل على الويندوز 7
وكأن البرنامج المستعمل فيه ليس به كود الحماية

الكود:

function GetIdeSerialNumber():string;
const IDENTIFY_BUFFER_SIZE = 512;
type
  TIDERegs = packed record
    bFeaturesReg     : BYTE; // Used for specifying SMART "commands".
    bSectorCountReg  : BYTE; // IDE sector count register
    bSectorNumberReg : BYTE; // IDE sector number register
    bCylLowReg       : BYTE; // IDE low order cylinder value
    bCylHighReg      : BYTE; // IDE high order cylinder value
    bDriveHeadReg    : BYTE; // IDE drive/head register
    bCommandReg      : BYTE; // Actual IDE command.
    bReserved        : BYTE; // reserved for future use.  Must be zero.
  end;
  TSendCmdInParams = packed record
    cBufferSize  : DWORD;
    irDriveRegs  : TIDERegs;
    bDriveNumber : BYTE;
    bReserved    : Array[0..2] of Byte;
    dwReserved   : Array[0..3] of DWORD;
    bBuffer      : Array[0..0] of Byte;  // Input buffer.
  end;
  TIdSector = packed record
    wGenConfig                 : Word;
    wNumCyls                   : Word;
    wReserved                  : Word;
    wNumHeads                  : Word;
    wBytesPerTrack             : Word;
    wBytesPerSector            : Word;
    wSectorsPerTrack           : Word;
    wVendorUnique              : Array[0..2] of Word;
    sSerialNumber              : Array[0..19] of CHAR;
    wBufferType                : Word;
    wBufferSize                : Word;
    wECCSize                   : Word;
    sFirmwareRev               : Array[0..7] of Char;
    sModelNumber               : Array[0..39] of Char;
    wMoreVendorUnique          : Word;
    wDoubleWordIO              : Word;
    wCapabilities              : Word;
    wReserved1                 : Word;
    wPIOTiming                 : Word;
    wDMATiming                 : Word;
    wBS                        : Word;
    wNumCurrentCyls            : Word;
    wNumCurrentHeads           : Word;
    wNumCurrentSectorsPerTrack : Word;
    ulCurrentSectorCapacity    : DWORD;
    wMultSectorStuff           : Word;
    ulTotalAddressableSectors  : DWORD;
    wSingleWordDMA             : Word;
    wMultiWordDMA              : Word;
    bReserved                  : Array[0..127] of BYTE;
  end;
  PIdSector = ^TIdSector;
  TDriverStatus = packed record
    bDriverError : Byte;
    bIDEStatus   : Byte;
    bReserved    : Array[0..1] of Byte;
    dwReserved   : Array[0..1] of DWORD;
  end;
  TSendCmdOutParams = packed record
    cBufferSize  : DWORD;
    DriverStatus : TDriverStatus;
    bBuffer      : Array[0..0] of BYTE;
  end;
  var
    hDevice : THandle;
    cbBytesReturned : DWORD;
//    ptr : PChar;
    SCIP : TSendCmdInParams;
    aIdOutCmd : Array [0..(SizeOf(TSendCmdOutParams)+IDENTIFY_BUFFER_SIZE-1)-1] of Byte;
    IdOutCmd  : TSendCmdOutParams absolute aIdOutCmd;

procedure ChangeByteOrder(var Data; Size : Integer );
var
  ptr : PChar;
  i : Integer;
  c : Char;
begin
    ptr := @Data;
    for i := 0 to (Size shr 1)-1 do
    begin
      c := ptr^;
      ptr^ := (ptr+1)^;
      (ptr+1)^ := c;
      Inc(ptr,2);
    end;
  end;
begin
  Result := ''; // return empty string on error
  if SysUtils.Win32Platform=VER_PLATFORM_WIN32_NT then // Windows NT, Windows 2000

begin
//íãßä ÊÛíÑ PhysicalDrive0 Çáì PhysicalDrive1 Çæ PhysicalDrive2
   hDevice := CreateFile( '\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,
  FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0 );
  end
  else // Version Windows 95 OSR2, Windows 98
  hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0 );
  if hDevice=INVALID_HANDLE_VALUE then Exit;
  try
    FillChar(SCIP,SizeOf(TSendCmdInParams)-1,#0);
    FillChar(aIdOutCmd,SizeOf(aIdOutCmd),#0);
    cbBytesReturned := 0;
    with SCIP do
    begin
    cBufferSize  := IDENTIFY_BUFFER_SIZE;
    bDriveNumber := 0;
   with irDriveRegs do
   begin
     bSectorCountReg  := 1;
     bSectorNumberReg := 1;
     bDriveHeadReg    := $A0;
     bCommandReg      := $EC;
    end;
    end;
    if not DeviceIoControl( hDevice, $0007c088, @SCIP, SizeOf(TSendCmdInParams)-1,
      @aIdOutCmd, SizeOf(aIdOutCmd), cbBytesReturned, nil ) then Exit;
  finally
    CloseHandle(hDevice);
  end;
  with PIdSector(@IdOutCmd.bBuffer)^ do
  begin
    ChangeByteOrder( sSerialNumber, SizeOf(sSerialNumber) );
    (PChar(@sSerialNumber)+SizeOf(sSerialNumber))^ := #0;
    Result := PChar(@sSerialNumber);
  end;
end;
function get_password(a: string): string;
var
  b: string;
  c: char;
  i,n: integer;
begin
  b:='';
  for i := 1 to length(a) do
  begin
    c:= a[i];
    n:= ord(c);
    n:=n+(2*i);
    b:=b+chr(n);
  end;
  Result:=b;
end;
 

في الويندوز xp يظهر رقم الهارد ديسك في Edit حتى يتم جلب رمز التشفير
وفي الويندوز 7 لا يظهر رقم الهارد ديسك يعني تظهر edit فارغة
وبناء على وجود edit فارغة بمجرد الضغط على زر الدخول الى البرنامج يدخل عادي بدون طلب رمز التشفير
المصدر : منتدى الفريق العربي للبرمجة

medreg
مبرمج

عدد المساهمات : 66
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 30/3/2015, 11:43 am


بـــسم الله الرحمن الرحيــــم

هذا أعتقد أنه الكود المطلوب

إذا كان الكود المطلوب نرجو ردا منكم بارك الله فيكم


الكود:

function DiskDurSeriele(const LetterDriv: Char): string;
var
  NotUs:    DWORD;
  VolFlages: DWORD;
  VolInf:  array[0..MAX_PATH] of Char;
  VolSerialeNum: DWORD;
begin
  GetVolumeInformation(PChar(LetterDriv + ':\'),
    nil, SizeOf(VolInf), @VolSerialeNum, NotUs,
    VolFlages, nil, 0);
  Result := Format('Label = %s  VolSer = %8.8X',
    [VolInf, VolSerialeNum])
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(DiskDurSeriele('c'));

end;

منتدى دلفي تعليم يرحب بكم
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  bolarba24 في 2/4/2015, 11:18 pm

بارك الله فيك

bolarba24

عدد المساهمات : 7
تاريخ التسجيل : 31/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  medreg في 10/4/2015, 3:00 am

السلام عليكم ورحمة الله تعالى وبركاته

بارك الله فيكم

ما اردته هو إظهار رقم الهارد بأكمله وليس رقم القرص

لكن اليكم هذا المرفق حاول تضيف اليه الكود الذي تفضلتم به

وبارك الله فيكم

4shared.com/rar/pGZlW8H5ce/key_gen01.html

medreg
مبرمج

عدد المساهمات : 66
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 12:46 pm

بـــسم الله الرحمن الرحيــــم

معرفة الرقم التسلسلي للقرص الصلب hard disk serial number على ...


delphi4arab.net/forum/showthread.php?t=1967


عدل سابقا من قبل alla في 14/6/2015, 9:47 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 12:49 pm

أداتين لإستخراج الرقم التسلسلي الصحيح للقرص الصلب

dz-soft.net/2012/01/blog-post_7327.html


عدل سابقا من قبل alla في 14/6/2015, 9:48 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 2:47 pm

طريقتان: واحدة للتعرف على الرقم التسلسلي للكمبيوتر

وأخرى لتنظيف الرام


ابدا ثم تشغيل واكتب
cmd
ثم
wmic csproduct get name, identifyingnumber
الرقم التسلسلي

لمزيد من المعلومات زيارة الرابط التالي
pcfacile1.com/archives/1728


.


عدل سابقا من قبل alla في 14/6/2015, 9:53 pm عدل 2 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 9:54 pm

أحفظ برامجك الديلفاوية من أذي العابثين باستخدام رقم الهارد (محترفين)

ميزات البرنامج :

كلمة المرور مكونة فقط من أرقام لتسهيل التعامل

كلمة المرور قصيرة

كل هارد له كلمة مرور ---> منع النسخ والتداول غير الرسمي ...

arabmoheet.net/aspnetforum/amf/091a19e1-22be-4c07-bf51-25a121aeee89.aspx


.


عدل سابقا من قبل alla في 14/6/2015, 9:50 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 10:06 pm

in Delphi7, How can I retrieve hard disk unique serial number?


stackoverflow.com/questions/5202270/in-delphi7-how-can-i-retrieve-hard-disk-unique-serial-number

.


عدل سابقا من قبل alla في 14/6/2015, 9:50 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 22/5/2015, 10:32 pm

تعلم كيف تحمي برامجك من السرقة من الصفر

3rbco.com/vb/t26014.html


عدل سابقا من قبل alla في 14/6/2015, 9:53 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  medreg في 25/5/2015, 10:09 pm

السلام عليكم أخي alla
ارجو منك ان تضيف لي كود إطهار رقم الهارد ديسك على المرفق الذي ارفقته في مشاركتي من دون تشفير
لأنني حاولت بكل الأمثلة التي اشرت اليها من خلال الروابط التي تفضلت بها ولم افلح
لذا ارجو ان ترفق لي مثال يطهر رقم الهارد في الاديت او اللابيل او عدل على المرفق
ويكون يعمل على الويندوز7
جزاك الله عنا كل خير

medreg
مبرمج

عدد المساهمات : 66
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 26/5/2015, 1:44 pm

أرجو منك زيارة الموضوع التالي على الرابط
delph.forumalgerie.net/t363-topic


عدل سابقا من قبل alla في 14/6/2015, 9:55 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  alla في 26/5/2015, 3:11 pm



Hardware ID Extractor

Hardware serial number extractor library

soft.tahionic.com/download-hdd_id/documentation/how%20to%20call%20it.html

or

soft.tahionic.com/download-hdd_id/documentation/how to call it.html

.


عدل سابقا من قبل alla في 14/6/2015, 9:55 pm عدل 1 مرات

alla
مبرمج مجتهد

عدد المساهمات : 720
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي

مُساهمة  sdk11 في 13/6/2015, 8:54 am

بارك الله فيك

sdk11
مبرمج مجتهد

عدد المساهمات : 109
تاريخ التسجيل : 19/09/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى