Cara Mendapatkan Serial Number ID BIOS dan Harddisk dengan Delphi 10.3

Barangkali Anda membutuhkan suatu identifier (ID) unique untuk aplikasi Delphi Anda, dapat terinspirasi dari tutorial berikut. Ya, ide dasar dari script di bawah adalah bagaimana mendapatkan id unik dari tiap-tiap komputer yang terinstal aplikasi kita. Script Delphi di bawah dapat Anda kembangkan menjadi semacam pengecekan lisensi aplikasi Anda bahwa hanya aplikasi yang terautentfikasi lisensinya yang dapat membuka aplikasi Anda baik keseluruhan maupun sebagian fitur-fiturnya

Salah satu cara mendapatkan id unik tiap komputer adalah dengan mengambil serial number bios dan harddisk.Apalagi jika kita menggabungkan keduanya, pasti akan lebih unik lagi 🙂 . Baiklah, untuk mendapatkan ID atau serial number BIOS (Basic Input Output System) dan harddisk caranya cukup mudah menggunakan Delphi. Silahkan diikuti tutorial sebagai berikut:

Buat project baru, save dengan nama sesuai keinginan Anda, misal Pbios.dproj untuk file project-nya dan Ubios.pas untuk file unit-nya

Ambil komponen Edit (2 buah) dan Button dari Component Pallete dan letakkan di Form Designer seperti gambar di bawah

Double click komponen button, dan isikan script seperti di bawah

procedure TForm1.Button1Click(Sender: TObject);
    begin
      FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
      FWMIService   := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

      edit1.Text:=GetWMIstring('Win32_BIOS','SerialNumber');
      edit2.Text:=GetWMIstring('Win32_PhysicalMedia','SerialNumber');

    end;

Di bawah compiler directive {$R *.dfm} (di bawah ‘Implementation’) copy-kan script sebagai berikut:

uses
      ActiveX,
      ComObj;

    var
      FSWbemLocator : OLEVariant;
      FWMIService   : OLEVariant;

    function  GetWMIstring(const WMIClass, WMIProperty:string): string;
    const
      wbemFlagForwardOnly = $00000020;
    var
      FWbemObjectSet: OLEVariant;
      FWbemObject   : OLEVariant;
      oEnum         : IEnumvariant;
      iValue        : LongWord;
    begin;
      Result:='';
      FWbemObjectSet:= FWMIService.ExecQuery(Format('Select %s from %s',[WMIProperty, WMIClass]),'WQL',wbemFlagForwardOnly);
      oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
      if oEnum.Next(1, FWbemObject, iValue) = 0 then

  if not VarIsNull(FWbemObject.Properties_.Item(WMIProperty).Value) then

     Result:=FWbemObject.Properties_.Item(WMIProperty).Value;

    FWbemObject:=Unassigned;
    end;

Sudah selesai 🙂 . Mudah, bukan? Jika segala sesuatunya lancar maka setelah Anda Run project Anda (tekan F9) maka tampilan aplikasi Anda adalah sebagai berikut. Silahkan klik tombol Button1, maka akan Anda dapatkan serial number BIOS dan hard disk Anda di kotak Edit 1 dan 2

Selamat bereksperimen, selanjutnya silahkan dikembangkan sendiri ya. Ohya, project ini sudah saya upload ke github di link delphi bios harddisk. Buat yang kesulitan copy-paste script di atas bisa download script utuhnya dari github kemudian tinggal Run aja. Saya menggunakan Delphi 10.3 Rio untuk meng-compile script di atas, untuk versi lain mungkin perlu ada penyesuaian.

0 0 votes
Article Rating

Leave a Reply

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
dikhsan

Keren Om… kebetulan lagi cari ini. terima kasih.

1
0
Would love your thoughts, please comment.x
()
x