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 Schnell erkennen, ob Karte im Cardreader steckt (https://www.delphipraxis.net/135842-schnell-erkennen-ob-karte-im-cardreader-steckt.html)

WorstNightmare 18. Jun 2009 18:40


Schnell erkennen, ob Karte im Cardreader steckt
 
Hallo,

gibt es eine Möglichkeit, schnell zu erkennen, ob eine SD-Karte im eingebauten Kartenleser steckt?
Den Laufwerksbuchstaben habe ich, allerdings schmiert mein Programm bei den Methoden die ich kenne immer ab oder bleibt für eine Minute hängen.

Mein bisheriger Code:
Delphi-Quellcode:
function HasLocalCover(ID: string): Boolean;
var
  NotUsed, Flags: DWORD;
begin
  Result := (Length(ID) = 6) and
            (frmSettings.edtCovers.Text <> '') and
            (GetVolumeInformation(PChar(Copy(frmSettings.edtCovers.Text, 1, 3)), nil, 0, nil, NotUsed, Flags, nil, 0)) and        (FileExists(frmSettings.edtCovers.Text + ID + '.png')) and
            (IsPNG(frmSettings.edtCovers.Text + ID + '.png'));
end;
Ich glaube, es hängt bei GetVolumeInformation (das wollte ich eigentlich benutzen um das zu erkennen), als auch bei FileExists.

Satty67 18. Jun 2009 20:06

Re: Schnell erkennen, ob Karte im Cardreader steckt
 
Ist wohl zu banal, aber ich poste es doch mal
Delphi-Quellcode:
if DirectoryExists(DriveLetter + ':\') then
hast du sicher probiert und funktioniert nicht.

DeddyH 18. Jun 2009 21:04

Re: Schnell erkennen, ob Karte im Cardreader steckt
 
Ich würde das so versuchen:
Delphi-Quellcode:
var ErrMode: Cardinal;
begin
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if DirectoryExists(DriveLetter + ':\') then
      ShowMessage('Here it is :)')
    else
      ShowMessage('Nö, is nich');
  finally
    SetErrorMode(ErrMode);
  end;

WorstNightmare 19. Jun 2009 15:53

Re: Schnell erkennen, ob Karte im Cardreader steckt
 
DirectoryExists funktioniert wunderbar. :-D
Danke für den Tipp! :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 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