AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CD/DVD-Laufwerk prüfen

Ein Thema von Luki206 · begonnen am 16. Dez 2013 · letzter Beitrag vom 17. Dez 2013
Antwort Antwort
Luki206
(Gast)

n/a Beiträge
 
#1

CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 12:57
Hi,
ich habe folgende Frage: Wie kann man es machen, damit, beim Programmstart, geprüft wird, ob sich eine CD im Laufwerk befindet und welche CD/DVD dort drin liegt. Das ganze sollte folgendermaßen Funktionieren, wenn man das Programm startet soll geprüft werden ob die CD mit dem Installationsprogramm eingelegt ist. Ich habe schon gegooglet und habe auch schon herausgefunden wie ich prüfe ob eine CD eingelegt ist oder nicht. Nur weis ich jetzt nicht, wie ich das mit dem Namen und Inhalt prüfen machen sollte. Websiten mit Beispielen und Erklärungen wären auch hilfreich
Danke
Luki
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 12:59
Vielleicht denke ich zu simpel, aber
if FileExists(<Laufwerksbuchstabe> + ':\MeineSetup.exe') then
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#3

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 15:13
Hmm.. Klingt logisch, aber ich habe in dem einen Tutorial nur gelesen wie man mit Boolean prüft ob eine CD/DVD eingelegt ist. Nur will ich dann jetzt ja den Laufwerkbuchstaben wissen und jetzt weis ich nicht, wie ich den Laufwerkbuchstaben ermittle.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 15:23
http://www.delphi-treff.de/tipps/sys...e-cd-ram-disk/
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#5

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 15:47
Ich habe das von dem Link jetzt versucht ein wenig umzubauen nur schaffe ich das irgendwie nicht. Im Tut. steht es ja so da:
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; //Bitmaske holen
   flag := 1; //Startflag setzen
   for Drive := 'Ato 'Zdo //Jeden Buchstaben gegenprüfen
   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; //Ein Bit weiter nach links gehen ( = flag * 2)
   end;
end;
Und jetzt möchte ich nur dass das Laufwerk geprüft wird. Ich hätte das jetzt folgendermaßen umgeschrieben nur kommt die Fehlermeldung:
[dcc32 Fehler] Unit1.pas(29): E2029 '..' erwartet, aber ']' gefunden
[dcc32 Fehler] Unit1.pas(30): E2010 Inkompatible Typen: 'Int64' und 'string'
[dcc32 Fehler] Unit1.pas(31): E2029 'OF' erwartet, aber 'VAR' gefunden
[dcc32 Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Misslungen

Und hier ist mein Code:
Delphi-Quellcode:
procedure GetDrives(const AItems: TStrings);
const
   DriveTypeTexts: array[DRIVE_CDROM] of string =
    ('CDROM');
var
   Drive: Char;
   DriveType: Integer;
   DriveMask: Integer;
   Flag: Integer;
begin
   DriveMask := GetLogicalDrives; //Bitmaske holen
   flag := 1; //Startflag setzen
   for Drive := 'Ato 'Zdo //Jeden Buchstaben gegenprüfen
   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; //Ein Bit weiter nach links gehen ( = flag * 2)
   end;
end;
Ich glaube ich denke mal wieder zu kompliziert und die Lösung ist ganz einfach..

Geändert von Luki206 (16. Dez 2013 um 15:50 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 16:01
Hallo,

das Array sollte nach deinem Code aber so bleiben.
Aber ich würde das einfacher machen.

Delphi-Quellcode:
procedure GetDrives(const AItems: TStrings);
var
   Drive: Char;
   DriveType: Integer;
   DriveMask: Integer;
   Flag: Integer;
   S1: String;
begin
   AItems.Clear;
   DriveMask := GetLogicalDrives; //Bitmaske holen
   flag := 1; //Startflag setzen
   for Drive := 'Ato 'Zdo //Jeden Buchstaben gegenprüfen
   begin
     if (flag and DriveMask) <> 0 then
     begin
       DriveType := GetDriveType(PChar(Format('%S:\',[Drive]) ) ) ;
       if DriveType=DRIVE_CDROM then
       begin
         AItems.Add(Drive);

         // falls das nicht klappt
         S1 := Drive;
         AItems.Add(S1);
       
       end;
     end;
     flag := flag shl 1; //Ein Bit weiter nach links gehen ( = flag * 2)
   end;
end;
Code ist nicht getestet.
Im Ergebnis sind die Buchstaben aller CD-/ DVD-Laufwerke in der StringList.

Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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