Bagaimana Mengetahui Drive itu CD/DVD Rom?


Mungkin pertanyaan di judul artikel ini aneh? Buat apa susah-susah membuat program seperti itu? Ya, kalau itu sih masalah kreatifitas programmer-nya. Saya pribadi terkadang memakai program beginian untuk membantu Pengguna yang awam saat mereka hendak menyimpan file-nya, atau bisa juga digunakan untuk mencegah Pengguna menggandakan data yang tidak dikehendaki.

Untuk mengotak-atik program seperti ini. Sertakan unit FileCtrl  pada bagian uses dulu. Segala prosedur dari artikel ini kebanyakan didapatkan dari sana.

Algoritma-nya berjalan seperti ini: 

  1. Drive di komputer dikenal dalam bentuk huruf. A sampai Z. Agar saya dapat menggunakan fungsi for yang mengharuskan nilai angka sebagai counter, maka A sampai Z tadi saya kodekan sebagai huruf ASCII, yaitu 65 sampai 90. 

    for i := 65 to 90 do begin
    ....
  2. Bentuk drive selalu ditulis dengan ':\',  maka saya menambahkan string ini ke drive dengan kode program

     C := chr(i)+':\';
  3. Fungsi  GetDriveType yang ada di unit Windows, saya gunakan untuk mengetahui tipe apakah drive yang dikodekan dengan string seperti poin 2 diatas,

     TipeDrive  :=  GetDriveType(PChar(C));
  4. Hasil dari TipeDrive dapat dianalisa sebagai berikut. Jika menghasilkan nilai 5 (dilambangkan dengan kostanta DRIVE_CDROM), maka drive tersebut adalah CDROM/DVDROM.

    Kostanta-kostanta lainnya dapat Anda lihat di unit Windows sebagai berikut:
    const
    DRIVE_UNKNOWN = 0;
    DRIVE_NO_ROOT_DIR = 1;
    DRIVE_REMOVABLE = 2;
    DRIVE_FIXED = 3;
    DRIVE_REMOTE = 4;
    DRIVE_CDROM = 5;
    DRIVE_RAMDISK = 6;
Program selengkapnya:

function CekTipeCDROM: string;
var
    i: Integer;
    C: String;
    TipeDrive: Integer;
begin
    for i := 65 to 90 do
    begin
        C := chr(i)+':\';
        TipeDrive :=  GetDriveType(PChar(C));
    
        case TipeDrive of
            DRIVE_CDROM:  Result := C+'  adalah CD-ROM drive';
        end;
    end;
 end;

Bagaimana Mengetahui Drive itu CD/DVD Rom? Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.