AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Thema durchsuchen
Ansicht
Themen-Optionen

Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

Ein Thema von Garfield · begonnen am 9. Jan 2005 · letzter Beitrag vom 26. Jan 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#1

Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 14:14
Hallo,

über diesen Source
Delphi-Quellcode:
  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')) + ':');
ermittle ich die vorhandenen CD-Rom-Laufwerke und trage sie in eine ComboBox ein.

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:
D: [LITEON DVD-ROM LTD163D]
E: [LITE-ON LTR-40125S]
F: [Generic DVD-ROM]
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, ...

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?
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 14:23
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.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 16:46
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.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 17:54
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.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 18:54
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.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#6

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 21:02
Zitat von Garfield:
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.
Win32_CDRomDrive funzt aber nur unter WinXP und Server 2003.

Bei Win98 würd ich bei der Registry bleiben.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 9. Jan 2005, 22:55
Ganz unten steht:
Zitat:
Requirements

Client: Requires Windows XP, Windows 2000 Professional, or Windows NT Workstation 4.0 SP4 and later.
Somit könnte man eine Version für Win9x/ME und eine für Win2000/XP machen.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#8

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 10. Jan 2005, 21:08
Oder man erstellt eine Abfrage, welches System gerade läuft
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 10. Jan 2005, 21:28
Die Abfrage ist ja das einfachste an der Sache:
Delphi-Quellcode:
  //***********************************************************************//
 // 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;
NT 4.0 Workstation wird wohl kaum noch jemand installiert haben!?
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#10

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 10. Jan 2005, 21:29
Hi!

*Meld*
Bei uns in der Schule z.B.!


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 18:49 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