![]() |
Laufwerke anzeigen
Wie zeige ich nur die CD/DVD/Brenner/etc. Laufwerke an, also keine Festplatten`?
Ich habe folgenden Code ![]()
Delphi-Quellcode:
Kann ich da die Festplatten/Diskette rausfiltern?
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; Wenn ja, wie? MfG |
Re: Laufwerke anzeigen
|
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 |
Re: Laufwerke anzeigen
Und? Ist das ein Problem für dich, dir den Beitrag von sakura wenigstens mal richtig anzusehen? Ich meine:
Zitat:
|
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; |
Re: Laufwerke anzeigen
Danke Sharky =)
MfG |
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?
|
Re: Laufwerke anzeigen
Evtl geht:
Delphi-Quellcode:
try
//dein Code except //Wird ausgeführt, wenn oben ein fehler auftritt ShowMessage('blubb'); end; |
Re: Laufwerke anzeigen
Try ... Except hat bei mir noch nie funktioniert - jetzt auch nicht ;-)
|
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