Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Laufwerke anzeigen (https://www.delphipraxis.net/41643-laufwerke-anzeigen.html)

ehem. Benutzer 6. Mär 2005 12:37


Laufwerke anzeigen
 
Wie zeige ich nur die CD/DVD/Brenner/etc. Laufwerke an, also keine Festplatten`?

Ich habe folgenden Code hier gefunden:

Delphi-Quellcode:
procedure GetDrives(const AItems: TStrings);
const
  DriveTypeTexts: array[DRIVE_UNKNOWN..DRIVE_RAMDISK] of String =
   ('Unbekannt', 'Kein Wurzelverzeichnis', 'Diskette', 'Festplatte', 'Netzlaufwerk', 'CDROM', 'RAMDisk');
var
  Drive: Char;
  DriveType: Integer;
  DriveMask: Integer;
  Flag: Integer;
begin
  DriveMask:=GetLogicalDrives;
  flag:=1;
  for Drive := 'A' to 'Z' do
  begin
    if (flag and DriveMask)<>0 then
    begin
      DriveType := GetDriveType(PChar(Format('%S:\',[Drive]) ) ) ;
      AItems.Add(Format('%s: %s', [Drive, DriveTypeTexts[DriveType]]));
    end;
    flag:=flag shl 1;
  end;
end;
Kann ich da die Festplatten/Diskette rausfiltern?
Wenn ja, wie?


MfG

Sharky 6. Mär 2005 12:40

Re: Laufwerke anzeigen
 
Hai ,

in der Code-Library gibt es einen Beitrag von der DP-Katze

ehem. Benutzer 6. Mär 2005 12:45

Re: Laufwerke anzeigen
 
Soweit war ich ja auch schon, also das er mir alle LAufwerke anzeigt...
Ich will aber keine Festplatten und Diskettenlaufwerke, sondern
nur CD/DVD/etc.



MfG

MathiasSimmack 6. Mär 2005 12:49

Re: Laufwerke anzeigen
 
Und? Ist das ein Problem für dich, dir den Beitrag von sakura wenigstens mal richtig anzusehen? Ich meine:
Zitat:

Delphi-Quellcode:
DRIVE_CDROM: Result := 'CD-ROM/DVD';

:roll:

Sharky 6. Mär 2005 12:52

Re: Laufwerke anzeigen
 
Ich habe jetzt einfach die eine Funktion so abgeändert das sie nur bei einem bestimmten LW-Typ ein TRUE zurück liefert.
Delphi-Quellcode:
function DriveExists(DriveByte: Byte; DriveType : Byte ): Boolean;
begin
  Result := (GetLogicalDrives and (1 shl DriveByte) <> 0)
            AND (DriveType = GetDriveType(PChar(Chr(DriveByte + Ord('A')) + ':\')));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to 25 do
  begin
   if DriveExists(I,Drive_CDROM) then
   begin
      ListBox1.Items.Add(Chr(I + Ord('A')) + ':\  (CDROM / DVD)');
   end;
  end;
end;

ehem. Benutzer 6. Mär 2005 12:57

Re: Laufwerke anzeigen
 
Danke Sharky =)


MfG

Aike 5. Okt 2005 15:54

Re: Laufwerke anzeigen
 
Wenn ich auf ein Disketten-Laufwerk klicke und es ist keine Disk drin, gibt's eine Exception. Leider kenne ich mich mit der Fehlerbehandlung überhaupt nicht aus. Was müsste ich denn dafür tun, dass dann eine Meldung a la "Keine Diskette eingelegt" kommt?

Matze 5. Okt 2005 16:02

Re: Laufwerke anzeigen
 
Evtl geht:

Delphi-Quellcode:
try
  //dein Code
except //Wird ausgeführt, wenn oben ein fehler auftritt
  ShowMessage('blubb');
end;

Aike 5. Okt 2005 16:07

Re: Laufwerke anzeigen
 
Try ... Except hat bei mir noch nie funktioniert - jetzt auch nicht ;-)

Chegga 5. Okt 2005 16:12

Re: Laufwerke anzeigen
 
Hi,

solche Aussagen liebe ich... :roll:
Mache einfach mal unter
Tools -> Debugger-Optionen...
die integrierte Fehlersuche weg.
(Auf deutsch: Du musst das Häkchen rausmachen :wink: )

Oder du startest das die *.exe-Datei außerhalb von Delphi. :zwinker:

MfG Marc

P.S.:
Bei älteren Delphiversionen könnte es ggf. auch anders gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.

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