Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Hallo,
über diesen Source
Delphi-Quellcode:
ermittle ich die vorhandenen CD-Rom-Laufwerke und trage sie in eine ComboBox ein.
ComboLW.Clear;
for i := 0 to 25 do if GetLogicalDrives and (1 shl i) <> 0 then if GetDriveType(PChar(Chr(i + Ord('A')) + ':\')) = DRIVE_CDROM then ComboLW.Items.Add(Chr(i + Ord('A')) + ':'); In zahlreichen Beispielen wird gezeigt, wie man unter anderem die Bezeichnung der eingelegten CD/DVD ermitteln kann. Ich möchte jedoch, wie zum Beispiel bei Brennprogrammen üblich, die Typenbezeichnung des Laufwerks ermitteln. So das die Liste zum Beispiel so aussieht:
Code:
Unter Win98SE könnte man die Registry durchsuchen. Da stehen dann unter Arbeitsplatz\HKEY_LOCAL_MACHINE\Enum\SCSI\ unter anderem die CD-ROM-Laufwerke mit DeviceType, HardwareID, Manufakturer, ProductID, CurrentDriveLetter, ...
D: [LITEON DVD-ROM LTD163D]
E: [LITE-ON LTR-40125S] F: [Generic DVD-ROM] Bei WinXP sind in der Registry zum Beispiel unter Arbeitssplatz\HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMA P\Scsi die Laufwerke (Festplatte/CD/DVD-ROM) mit ihrer Bezeichnung aufgeführt. Ausführlicher stehen sie dann unter Arbeitssplatz\HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET 001\IDE und SCSI. Gibt es Funktionen, mit welchen man sich die aufwändige Suche in der Registry ersparen kann? |
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Ein Weg führt über die Windows Management Instrumentation (WMI), siehe dazu im PSDK. Da solltest du dir mal die Klasse Win32_LogicalDisk ansehen, die enthält glaube ich die Information, die du suchst.
|
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Vielen Dank für den Tipp. Über Win32_LogicalDisk bin ich zu win32_cdromdrive gekommen. Jetzt muss 'nur' noch sehen, wie ich das in D7PE reinbekomme. Die Source-Beispiele, welche Google bringt, sind fast ausschließlich in C.
|
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Der alternative Weg geht ueber das Config Manager API, aber ich habe noch keine Zeit gefunden die Delphi-Konversion davon freizugeben.
Das ist im Wesentlichen das API das vom Device Manager verwendet wird. |
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Wenn Nero installiert ist, könnte man auch die Delphi Nero API benutzen. Oder alternativ nachsehen, was Nero in die Registry geschrieben hat. Nero habe ich allerdings nicht.
|
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Zitat:
Bei Win98 würd ich bei der Registry bleiben. |
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Ganz unten steht:
Zitat:
|
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Oder man erstellt eine Abfrage, welches System gerade läuft
|
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Die Abfrage ist ja das einfachste an der Sache:
Delphi-Quellcode:
NT 4.0 Workstation wird wohl kaum noch jemand installiert haben!?
//***********************************************************************//
// Ist mindestens Windows 2000 installiert? // //***********************************************************************// function minWin2000: Boolean; var os : TOSVersionInfo; begin os.dwOSVersionInfoSize := sizeof(os); GetVersionEx(os); if (os.dwPlatformId = VER_PLATFORM_WIN32_NT) and (os.dwMajorVersion >= 5) then minWin2000 := True else minWin2000 := False; end; |
Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Hi!
*Meld* Bei uns in der Schule z.B.! Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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