Arsip: Mendeteksi drive baru /removable drive


by nickqin in Articles more 16 years ago 1739
Pernah berfikir bagaimana virus untuk mendeteksi drive atau removable secara realtime, tanpa harus merestart aplikasi yang kita buat. Sebenarnya bisa melalui beberapa cara mungkin membaca captionbarnya atau yang lainya
berikut salah satu cara yang aku gunakan
untuk lebih mudahnya pasang beberapa komponen:
2 buah label 1 memo dan 1 timer
kodenya sebagai berikut:
procedure GetDriveList(var DriveList: TStringList);
var
i : integer;
dwDrive : DWORD;
sDrive : string;
begin
DriveList.Clear;
// Mencari drive logical yang tersedia pada sistem
  dwDrive := GetLogicalDrives;
for i := 0 to 25 do
begin
{ 'shl' merupakan operator 'bitwise shift left'}
if (dwDrive and (1 shl i)) <> 0 then
begin
sDrive := Char(Integer('A') + i) + ':\';
DriveList.Add(sDrive);
end;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i,j : integer;
DriveList : TStringList;
begin;
memo1.Clear ;
DriveList := TStringList.Create;
try
// Mencari Drive yang tersedia
  GetDriveList(DriveList);
for i := 0 to DriveList.Count -1 do
begin
memo1.Lines.Add(DriveList[i]);
label2.Caption :=memo1.Lines.Strings[memo1.Lines.Count-1];
//membanding kan jumlah drive awal dg saat ini
       if (memo1.Lines.Count > strtoint(label1.Caption)) then
begin
label1.Caption :=inttostr(memo1.Lines.Count);
//jika ada tampilkan pesan
       showmessage('Ada Drive baru yaitu '+label2.Caption);
end;
end;
finally
DriveList.Free;
j:=memo1.Lines.Count;
//Membandingkan jika ada drive yang dilepas
  if (strtoint(label1.Caption) > j ) then
begin
label1.Caption :=inttostr(memo1.Lines.Count);
//jika ada tampilkan pesan
     showmessage('Ada Drive yang dilepas');
end;
end
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
DriveList : TStringList;
begin;
memo1.Clear ;
DriveList := TStringList.Create;
try
// Mencari Drive yang tersedia
  GetDriveList(DriveList);
for i := 0 to DriveList.Count -1 do
begin
memo1.Lines.Add(DriveList[i]);
label1.Caption :=inttostr(memo1.Lines.Count);
end;
finally
DriveList.Free;
end;
end;
Syntax Highlighted with https://pascal-id.org/syntax



Semoga bermanfaat
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com