مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
4 مشترك
دلفي تعليم :: منتديات البرمجة :: دلفي
صفحة 1 من اصل 1
مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
السلام عليكم ورحمة الله تعالى
هذا الكود يعمل على الويندوز xp
ولكن لا يعمل على الويندوز 7
وكأن البرنامج المستعمل فيه ليس به كود الحماية
في الويندوز xp يظهر رقم الهارد ديسك في Edit حتى يتم جلب رمز التشفير
وفي الويندوز 7 لا يظهر رقم الهارد ديسك يعني تظهر edit فارغة
وبناء على وجود edit فارغة بمجرد الضغط على زر الدخول الى البرنامج يدخل عادي بدون طلب رمز التشفير
المصدر : منتدى الفريق العربي للبرمجة
هذا الكود يعمل على الويندوز 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;
وفي الويندوز 7 لا يظهر رقم الهارد ديسك يعني تظهر edit فارغة
وبناء على وجود edit فارغة بمجرد الضغط على زر الدخول الى البرنامج يدخل عادي بدون طلب رمز التشفير
المصدر : منتدى الفريق العربي للبرمجة
medreg- مبرمج ممتاز جدا
- عدد المساهمات : 81
تاريخ التسجيل : 29/01/2015
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
بـــسم الله الرحمن الرحيــــم
هذا أعتقد أنه الكود المطلوب
إذا كان الكود المطلوب نرجو ردا منكم بارك الله فيكم
- الكود:
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;
منتدى دلفي تعليم يرحب بكم
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
bolarba24- عدد المساهمات : 7
تاريخ التسجيل : 31/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
السلام عليكم ورحمة الله تعالى وبركاته
بارك الله فيكم
ما اردته هو إظهار رقم الهارد بأكمله وليس رقم القرص
لكن اليكم هذا المرفق حاول تضيف اليه الكود الذي تفضلتم به
وبارك الله فيكم
4shared.com/rar/pGZlW8H5ce/key_gen01.html
بارك الله فيكم
ما اردته هو إظهار رقم الهارد بأكمله وليس رقم القرص
لكن اليكم هذا المرفق حاول تضيف اليه الكود الذي تفضلتم به
وبارك الله فيكم
4shared.com/rar/pGZlW8H5ce/key_gen01.html
medreg- مبرمج ممتاز جدا
- عدد المساهمات : 81
تاريخ التسجيل : 29/01/2015
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
بـــسم الله الرحمن الرحيــــم
معرفة الرقم التسلسلي للقرص الصلب hard disk serial number على ...
delphi4arab.net/forum/showthread.php?t=1967
معرفة الرقم التسلسلي للقرص الصلب hard disk serial number على ...
delphi4arab.net/forum/showthread.php?t=1967
عدل سابقا من قبل alla في 14/6/2015, 9:47 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
أداتين لإستخراج الرقم التسلسلي الصحيح للقرص الصلب
dz-soft.net/2012/01/blog-post_7327.html
dz-soft.net/2012/01/blog-post_7327.html
عدل سابقا من قبل alla في 14/6/2015, 9:48 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
طريقتان: واحدة للتعرف على الرقم التسلسلي للكمبيوتر
وأخرى لتنظيف الرام
ابدا ثم تشغيل واكتب
cmd
ثم
wmic csproduct get name, identifyingnumber
الرقم التسلسلي
لمزيد من المعلومات زيارة الرابط التالي
pcfacile1.com/archives/1728
.
وأخرى لتنظيف الرام
ابدا ثم تشغيل واكتب
cmd
ثم
wmic csproduct get name, identifyingnumber
الرقم التسلسلي
لمزيد من المعلومات زيارة الرابط التالي
pcfacile1.com/archives/1728
.
عدل سابقا من قبل alla في 14/6/2015, 9:53 pm عدل 2 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
أحفظ برامجك الديلفاوية من أذي العابثين باستخدام رقم الهارد (محترفين)
ميزات البرنامج :
كلمة المرور مكونة فقط من أرقام لتسهيل التعامل
كلمة المرور قصيرة
كل هارد له كلمة مرور ---> منع النسخ والتداول غير الرسمي ...
arabmoheet.net/aspnetforum/amf/091a19e1-22be-4c07-bf51-25a121aeee89.aspx
.
ميزات البرنامج :
كلمة المرور مكونة فقط من أرقام لتسهيل التعامل
كلمة المرور قصيرة
كل هارد له كلمة مرور ---> منع النسخ والتداول غير الرسمي ...
arabmoheet.net/aspnetforum/amf/091a19e1-22be-4c07-bf51-25a121aeee89.aspx
.
عدل سابقا من قبل alla في 14/6/2015, 9:50 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
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
.
stackoverflow.com/questions/5202270/in-delphi7-how-can-i-retrieve-hard-disk-unique-serial-number
.
عدل سابقا من قبل alla في 14/6/2015, 9:50 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
تعلم كيف تحمي برامجك من السرقة من الصفر
3rbco.com/vb/t26014.html
3rbco.com/vb/t26014.html
عدل سابقا من قبل alla في 14/6/2015, 9:53 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
السلام عليكم أخي alla
ارجو منك ان تضيف لي كود إطهار رقم الهارد ديسك على المرفق الذي ارفقته في مشاركتي من دون تشفير
لأنني حاولت بكل الأمثلة التي اشرت اليها من خلال الروابط التي تفضلت بها ولم افلح
لذا ارجو ان ترفق لي مثال يطهر رقم الهارد في الاديت او اللابيل او عدل على المرفق
ويكون يعمل على الويندوز7
جزاك الله عنا كل خير
ارجو منك ان تضيف لي كود إطهار رقم الهارد ديسك على المرفق الذي ارفقته في مشاركتي من دون تشفير
لأنني حاولت بكل الأمثلة التي اشرت اليها من خلال الروابط التي تفضلت بها ولم افلح
لذا ارجو ان ترفق لي مثال يطهر رقم الهارد في الاديت او اللابيل او عدل على المرفق
ويكون يعمل على الويندوز7
جزاك الله عنا كل خير
medreg- مبرمج ممتاز جدا
- عدد المساهمات : 81
تاريخ التسجيل : 29/01/2015
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
أرجو منك زيارة الموضوع التالي على الرابط
delph.forumalgerie.net/t363-topic
delph.forumalgerie.net/t363-topic
عدل سابقا من قبل alla في 14/6/2015, 9:55 pm عدل 1 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
رد: مشكلة في كود لمعرفة الرقم التسلسلي للهارد بالدلفي
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 مرات
ali- مبرمج مجتهد
- عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013
sdk11- مبرمج مجتهد
- عدد المساهمات : 108
تاريخ التسجيل : 19/09/2014
دلفي تعليم :: منتديات البرمجة :: دلفي
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى