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.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Keren Om… kebetulan lagi cari ini. terima kasih.