Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DirectoryExists Laufwerk vorhanden aber kein Datenträger (https://www.delphipraxis.net/128761-directoryexists-laufwerk-vorhanden-aber-kein-datentraeger.html)

TUX_der_Pinguin 5. Feb 2009 15:03


DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
In meinem Programm wird mit "DirectoryExists()" geprüft ob ein Verzeichnis vorhanden ist,
jedoch trat ein Fehler auf mit einer Meldung das kein Datenträger im Laufwerk vorhanden sei.
Es standen 3 optionen zur Auswahl "Abbrechen", "Wiederholen" und "Weiter" danach lief das
Programm auch normal weiter.

Wie bekomme ich das hin das keine Meldung auftaucht, bei dem Laufwek handelt es sich um
einen Kartenleser wo keine Speicherkarte eingelegt war.

Delphi-Quellcode:
if DirectoryExists('K:\test') then
  ShowMessage('Verz. vorhanden!')
else
  ShowMessage('Verz. nicht vorhanden!');

taaktaak 5. Feb 2009 15:14

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
Moin, Moin.
Ich glaub' mit
Delphi-Quellcode:
SetErrorMode(SEM_FAILCRITICALERRORS)
kann man die Systemfehlermeldungen ausschalten.

DeddyH 5. Feb 2009 15:16

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
Genau, und anschließend wiederherstellen. Das sähe dann so aus:
Delphi-Quellcode:
var ErrMode: Cardinal;
begin
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  if DirectoryExists('K:\test') then
    ShowMessage('Verz. vorhanden!')
  else
    ShowMessage('Verz. nicht vorhanden!');
  SetErrorMode(ErrMode);
end;

TUX_der_Pinguin 5. Feb 2009 15:17

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
Vielen dank, das ging mal flott ;-)

taaktaak 5. Feb 2009 15:20

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
Tja, so ist das eben bei der DP
:wink:

Christian Seehase 5. Feb 2009 18:11

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
Moin Zusammen,

ich würde dem Ganzen aber noch einen try/finally-Block spendieren, denn der ErrorMode gilt für die gesamte Prozesslaufzeit, und alle Child-Prozesse.
Da könnte es ungünstig sein, wenn durch einen Fehler bestimmte Meldungen dauerhauft unterdrückt werden würden. ;-)

Delphi-Quellcode:
var ErrMode: Cardinal;
begin
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if DirectoryExists('K:\test') then
      ShowMessage('Verz. vorhanden!')
    else
     ShowMessage('Verz. nicht vorhanden!');
  finally
    SetErrorMode(ErrMode);
  end;
end;

AlexII 22. Apr 2009 16:21

Re: DirectoryExists Laufwerk vorhanden aber kein Datenträger
 
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz