d: sürücüsünde bir dosya var mı?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

d: sürücüsünde bir dosya var mı?

Mesaj gönderen cfyasar »

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.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Try-except bloğuna alınca olmuyor mu? except kısmındaki kod boş ise çalışır.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

Mesaj gönderen cfyasar »

denedim olmuyor. yine hata veriyor.
D: sürücüsünde disk yok. lütfen disk takın
öğrenmek, zorlukları yenmektir.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Debug ederken verir hatayı. Exe'yi doğrudan çalıştırıp denersen vermemesi lazım.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

Mesaj gönderen cfyasar »

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.
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

Mesaj gönderen cfyasar »

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.
Cevapla