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 Windows API und das Erkennen von CD_DVD Brennern (https://www.delphipraxis.net/125194-windows-api-und-das-erkennen-von-cd_dvd-brennern.html)

Ajin 2. Dez 2008 08:31


Windows API und das Erkennen von CD_DVD Brennern
 
Hallo DP !

Die Suchfunktion hat mir schon gezeigt, dass die Win API die optischen Laufwerkstypen nicht unterscheiden kann. Die Threads sind stellenweise auch schon etwas älter, gibts in dieser Richtung keine "updates" ? Kann ich weiterhin nur aus dem Laufwerksnamen Schlüsse über den Laufwerks-Typen ermitteln?

Gruss Ajin

Mithrandir 2. Dez 2008 11:19

Re: Windows API und das Erkennen von CD_DVD Brennern
 
Dies funktioniert über das sog. SPTI (SCSI PASS THROUGH INTERFACE). Dazu einfach mal hier in der DP suchen und die Sourcen von http://dancemammal.com/cdburn.htm anschauen. Auch wenn das Ding schon fast 3 Jahre alt ist und der Staub meterdick draufliegt, so kann man doch zumindest die Funktion zum Auslesen der Eigenschaften von Laufwerken extrahieren.

Ajin 2. Dez 2008 14:19

Re: Windows API und das Erkennen von CD_DVD Brennern
 
Also mit

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i     : Byte;
  LW_Bez : String;
  LW_Eig : TCDROMDrive;
begin
  for i := 0 to 25 do
  if GetLogicalDrives and (1 shl i) <> 0
  then
    if GetDriveType(PAnsiChar(Chr(i + Ord('A')) + ':\')) = DRIVE_CDROM
    then begin
      LW_Bez := Chr(i + Ord('A')) + ':';
      LW_Eig := TCDROMDrive.Create(LW_Bez);
      ComboBox1.Items.Add(LW_Bez + ' ' + LW_Eig.Name);
      if ComboBox1.Items.Count > 0
        then ComboBox1.ItemIndex := 0;
    end;
end;
hab ich zumindest mal die Laufwerksbezeichnung. Der Nutzer Garfield hat sich ebenfalls mit dieser Thematik beschäftigt.

Ein ehemaliger Nutzer von DP schrieb:

Zitat:

Die moderne Methode ist über WMI und dessen Klasse Win32_CDROMDrive. Deren Member Capabilities enthält ein Flag, ob das Laufwerk Schreiben unterstützt.
:shock: Hat das schonmal jemand probiert?

Mithrandir 3. Dez 2008 08:29

Re: Windows API und das Erkennen von CD_DVD Brennern
 
Und was ist jetzt mit meinem Vorschlag :?:

Es gibt wohl Ansätze, die WMI in Delphi zu nutzen.


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