Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Power Onguard ile makine kodu alma
#1
Power Onguard Kullanarak aşağıdaki foksiyon ile makine kodunu alıyorum.
Sorunun bilgisayara 2. , 3. bir hdd takıldığında (bu usb taşınabilir disk olabilir)
midDrives opsiyonu farklı numaralar üretiyor. 
bunun bir hata olmadığı biliyorum.
midDrives opsiyonuna sadece programın kurulu olduğu disk için numara verdirebilir miyiz.



 

function makina_kodu:Longint; export;
begin
Expires := 0;
MachineKey := Key;
MachineModifier := ABS(CreateMachineID([midUser, midSystem, {midNetwork,} midDrives]));
ApplyModifierToKeyPrim(MachineModifier,MachineKey,sizeof(MachineKey));
RegistrationFile := inttostr(MachineModifier)+'.lsn';
result := MachineModifier// MachineModifier;
end;
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
Video 
ogutil.pas içerisinde aşağıdaki tanım var. 

 if (GetDriveType(PChar(Drive + ':\')) = DRIVE_FIXED) then begin

DRIVE_FIXED tanımıda WinApi.Windows içarisinde şu şekilde tanımlanmış

const
 DRIVE_UNKNOWN = 0;
 {$EXTERNALSYM DRIVE_UNKNOWN}
 DRIVE_NO_ROOT_DIR = 1;
 {$EXTERNALSYM DRIVE_NO_ROOT_DIR}
 DRIVE_REMOVABLE = 2;
 {$EXTERNALSYM DRIVE_REMOVABLE}
 DRIVE_FIXED = 3;
 {$EXTERNALSYM DRIVE_FIXED}
 DRIVE_REMOTE = 4;
 {$EXTERNALSYM DRIVE_REMOTE}
 DRIVE_CDROM = 5;
 {$EXTERNALSYM DRIVE_CDROM}
 DRIVE_RAMDISK = 6;
 {$EXTERNALSYM DRIVE_RAMDISK}

Buna göre harici takılan belleklerin hesaba katılmaması gerekiyor.


ogutil.pas içeriğinden bir kısım

  if midDrives in MachineInfo then begin
   {include drive specific information}
   {$IFDEF FPC}
   maxController := 15;
   if Win32Platform <> VER_PLATFORM_WIN32_NT then
     maxController := 0;
   for iController := 0 to maxController do
   begin
     for iDrive := 0 to 4 do
     begin
       BufStr := '';
       if GetIdeDiskSerialNumber(iController,iDrive,BufStr) then
          if BufStr<>'' then UpdateTMD(Context, BufStr[1], 5);
     end;
   end;
   {$ELSE}
   for Drive := 'C' to 'Z' do begin // Ekleme veya buradaki döngü sadece C ile sınırlı olabilir

     if (GetDriveType(PChar(Drive + ':\')) = DRIVE_FIXED) then begin // Sabit diskler hesaba katılıyor
       // detect SUBST drives and ignore - see ticket #8                        {!!.15}
       device[0] := AnsiChar(Drive);                                            {!!.15}
       device[1] := ':';                                                        {!!.15}
       device[2] := #0;                                                         {!!.15}
       FillChar(subst, SizeOf(subst), 0);                                       {!!.15}
       QueryDosDeviceA(device, subst, 1024);                                    {!!.15}
       OutputDebugString(PChar(Format('CreateMachineID:midDrives %s:\ %s', [Drive, {$IFDEF DELPHI15UP}System.AnsiStrings.StrPas(subst){$ELSE}StrPas(subst){$ENDIF}])));
       // SUBST drives return a \??\ prefix                                     {!!.15}
       if(Copy({$IFDEF DELPHI15UP}System.AnsiStrings.StrPas(subst){$ELSE}StrPas(subst){$ENDIF}, 1, 4)) <> '\??\' then begin                        {!!.15}
         FillChar(Buf, Sizeof(Buf), 0);
         Buf[0] := Byte(Drive);
         {!!.15} {removed cluster information}
         GetVolumeInformation(PChar(Drive + ':\'), nil, 0,
           PDWord(@Buf[1]){serial number}, I{not used}, I{not used}, nil, 0);

         UpdateTMD(Context, Buf, 5);
       end;                                                                     {!!.15}
     end;
   end;
 {$ENDIF}
 end;
Cevapla
#3
Bilgilendirme için teşekkür ederim Allah c.c razı olsun bu bilgiler ışığında 
ogutil.pas dosyasının içeriğini değiştirerek deneyeceğim.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#4
Onguard bileşeni kullanmanız zorunlu mu? Değilse, hard diskin fiziksel seri numarasını alan küçük bir örnek ekleyeyim. Kendinize göre birtakım işlemlere tabi tutup bir kod oluşturabilirsiniz.


Ek Dosyalar
.zip   hddno.zip (Dosya Boyutu: 52,69 KB / İndirme Sayısı: 28)
Bazen daha ileriye ulaşmak için bir kaç adım geri gitmek mecburidir. Çünkü en ileri sıçrayışlar iki adım geriden başlar.
Cevapla
#5
(12-10-2018, Saat: 15:43)ihalilcoban Adlı Kullanıcıdan Alıntı: Onguard bileşeni kullanmanız zorunlu mu? Değilse, hard diskin fiziksel seri numarasını alan küçük bir örnek ekleyeyim. Kendinize göre birtakım işlemlere tabi tutup bir kod oluşturabilirsiniz.

Bilgilendirme için teşekkür ederim.

Onguard ile demo oluşturma iki tarih arası çalıştırma gibi bir çok özellik var.

Bir çoğunu kullanıyorum.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IEC 61850 Potokolünden veri alma shooterman 1 413 14-03-2024, Saat: 11:38
Son Yorum: shooterman
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 16 7.952 25-12-2023, Saat: 11:35
Son Yorum: osiso
  [ÇÖZÜLDÜ]Firebase Bearer Token Alma shooterman 8 620 05-12-2023, Saat: 12:17
Son Yorum: shooterman
  Windows API kodu çözümlemesi parlakcuma 1 638 23-09-2023, Saat: 05:29
Son Yorum: parlakcuma
  yeni kayıtta bildirim alma ercanskose 5 1.108 26-06-2023, Saat: 13:04
Son Yorum: ercanskose



Konuyu Okuyanlar: 1 Ziyaretçi