Cenadep.org-Delphi-Tutorial-2013-09-30 02_17_20-Unit1.pas

Print Friendly

Kadang-kadang kita perlu menampilkan daftar keyboard dalam aplikasi kita. Bagaimana caranya?
Kita dapat menggunakan Windows API untuk mendapatkan system hardware information, tapi di sini kita akan mencoba cara yang jauh lebih mudah, yaitu dengan WMI (Windows Management Instumentation).

WMI telah tersedia sejak Windows 2000 dan dapat dimanfaatkan untuk melakukan hampir semua pekerjaan administrasi di Windows, baik hardware maupun software. Dengan perantaraan WBEM (Web-Based Enterprise Management) Scripting di Delphi, kita dengan mudah dapat menampilkan daftar keyboard yang terpasang di komputer kita.

Untuk mencoba, buatlah sebuah projek baru. Save ke sebuah folder.

Kemudian download file WBEM Scripting Type Library interface yang sudah saya siapkan:

Download WBEM Scripting Type Library Interface

Dan letakkan dalam satu folder dengan projek Anda.

Di Delphi, lihat code untuk Form1. Tambahkan nama unit hasil download dan unit ActiveX ke clausa uses (ckup di bagian implementation):


implementation

{$R *.dfm}

uses
  ActiveX,
  org_cenadep_mod_WbemScripting_TLB;

Kemudian kembali ke form designer. Tambahkan sebuah Button dan sebuah Listbox. Saat Button diklik, daftar keyboard akan ditampilkan ke Listbox1.
Lihat tampilan desain punya saya sebagai perbandingan:
Cenadep.org-Delphi-Tutorial-2013-09-30 02_31_08-Form1

Kemudian klik ganda Button1 dan isikan kode untuk event OnClick seeperti berikut:

procedure TForm1.Button1Click(Sender: TObject);
var
  WMIServices : ISWbemServices;
  Root        : ISWbemObjectSet;
  Item        : Variant;
  i           : Integer;
  devID       : string;
  StrDeviceName: String;
begin
  ListBox1.Clear;
  try
    try
      CoInitialize(nil);
      
      WMIServices := CoSWbemLocator.Create.ConnectServer('.','root\cimv2', '', '', '', '', 0, nil);
      Root := WMIServices.ExecQuery('Select * From Win32_Keyboard Where ConfigManagerErrorCode=0','WQL', 0, nil);
      for i:= 0 to Root.Count-1 do
      begin
        Item := Root.ItemIndex(i);
        ListBox1.Items.Add('Keyboard '+ IntToStr(i+1)+':');
        ListBox1.Items.Add('     '+VarToStr(Item.DeviceID));
        ListBox1.Items.Add('     '+VarToStr(Item.Caption));
        ListBox1.Items.Add('------------------------------------------------------------');
      end;
      CoUninitialize
    except
      CoUninitialize
    end;
  except
  end;
end;

Dengan demikian kode selengkapnya menjadi:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  ActiveX,
  org_cenadep_mod_WbemScripting_TLB;

procedure TForm1.Button1Click(Sender: TObject);
var
  WMIServices : ISWbemServices;
  Root        : ISWbemObjectSet;
  Item        : Variant;
  i           : Integer;
  devID       : string;
  StrDeviceName: String;
begin
  ListBox1.Clear;
  try
    try
      CoInitialize(nil);
      
      WMIServices := CoSWbemLocator.Create.ConnectServer('.','root\cimv2', '', '', '', '', 0, nil);
      Root := WMIServices.ExecQuery('Select * From Win32_Keyboard Where ConfigManagerErrorCode=0','WQL', 0, nil);
      for i:= 0 to Root.Count-1 do
      begin
        Item := Root.ItemIndex(i);
        ListBox1.Items.Add('Keyboard '+ IntToStr(i+1)+':');
        ListBox1.Items.Add('     '+VarToStr(Item.DeviceID));
        ListBox1.Items.Add('     '+VarToStr(Item.Caption));
        ListBox1.Items.Add('------------------------------------------------------------');
      end;
      CoUninitialize
    except
      CoUninitialize
    end;
  except
  end;
end;

end.

Lalu save projek.
Sekarang compile projek kita, jalankan dan klik Button1. Hasilnya, daftar keyboard kompuetr Anda akan ditampilkan dalam Listbox1 sesuai yang kita harapkan.

Cenadep.org-Delphi-Tutorial-2013-09-30 02_17_20-Unit1.pas

Download Source Code Contoh Program Menampilkan Daftar Keyboard Dengan Delphi

Silahkan download source code contoh program di sini.

Sukses selalu :)

 

Comments

comments

Powered by Facebook Comments