d: sürücüsünde bir dosya var mı?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
d: sürücüsünde bir dosya var mı?
bir kart okuyucu kullanıyorum ve bilgisayarda e,f,g,h gibi sürücülerim var. bunlardan hangisine kart takıldığını anlamanın bir yolunu bulamadım. WM_DeviceChange bana kart okuyucunun veya cd nin takılıp çıkarılmasını bildiriyor ama kart okuyucunun hangi yuvasına kart takıldığını bildirmiyor. Bende belli aralıklarla e,f,g,h sürücülerini dosya var mı diye tarıyorum. Ama boş olan kart yuvasında DirectoryExists ile directory var mı diye kontrol ettiğimde windows bana hata mesajı veriyor. Bu mesajı hangi exepciton ile yakalayabilirim ve kullanıncının görmemesini sağlayabilirim?
öğrenmek, zorlukları yenmektir.
Evet normal exe yi de çalıştırıp denemedim ama olmuyor. Sanırım bu hata olmadığı için yakalamıyor try except bloğu. Bu hata mesajı değil de bilgi mesajı oluyor galiba. CD sürücüsüne cd koymadan kodu çalıştırıyorum ve bana cd yok, takın diyor.Bu bilgi mesajını yakalamanın yolunu aramam lazım.
öğrenmek, zorlukları yenmektir.
Torry's delphi pages den bir kod buldum sorunum hallodu.
Kod: Tümünü seç
function DiskInDrive(Drive: Char): Boolean;
// Disk can be a floppy, CD-ROM,...
var
ErrorMode: Word;
begin
{ make it upper case }
if Drive in ['a'..'z'] then Dec(Drive, $20);
{ make sure it's a letter }
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
{ turn off critical errors }
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
{ drive 1 = a, 2 = b, 3 = c, etc. }
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
{ Restore old error mode }
SetErrorMode(ErrorMode);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DiskInDrive('a') = False then
ShowMessage('Drive not ready');
end;
öğrenmek, zorlukları yenmektir.