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ı: 4)
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
  Bu kodu çevirirken nerede hata yapıyorum ? seci20 14 1.482 08-10-2019, Saat: 17:39
Son Yorum: crypto
  EFinans -> E-Arşiv WSDL alma malitutuncu 0 109 20-09-2019, Saat: 10:41
Son Yorum: malitutuncu
  Çözüldü-sql kodu dengesiz çalışıyor sadikacar60 4 500 11-07-2019, Saat: 14:28
Son Yorum: mcuyan
  Quick reportta hem satır, hem sütünu db.den alma boreas 6 398 12-06-2019, Saat: 08:48
Son Yorum: boreas
  HDMI'den görüntü ve ses alma Yeliz 5 608 13-02-2019, Saat: 21:56
Son Yorum: ahmetb



Konuyu Okuyanlar: 1 Ziyaretçi