Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Feststellen, ob CD oder DVD-Laufwerk (https://www.delphipraxis.net/165156-feststellen-ob-cd-oder-dvd-laufwerk.html)

Mithrandir 16. Dez 2011 16:33

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Zitat:

Zitat von DeddyH (Beitrag 1141805)
Naja, schön ist aber was anderes. Irgendwie muss es aber möglich sein, diese Info halbwegs zuverlässig zu erhalten, Brennprogramme kriegen das ja auch hin (vermutlich über den Treiber).

Klar.

DeviceIOControl und SCSI_PASSTHROUGH_INTERFACE ist hier das Zauberwort, wobei letzteres vielleicht gar nicht gebraucht wird.

Schlachte doch mal diese Bibliothek aus, vielleicht hilfts. :)

ASM 17. Dez 2011 22:16

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hoika (Beitrag 1141758)
Wie bekomme ich also raus, ob es ein CD oder DVD-Laufwerk ist ?

Dies und weit mehr geht hervorragend mit der TIsoLib, die komplett im Quellcode vorliegt.
Letzte Version ist v0.03a und stammt zwar schon aus 2004, funktioniert aber unter WinXP und zumindestens mit D7 bei mir problemlos (siehe beigefügte, von mir erweiterte Exe-Demo, getestet auf 4 verschiedenen Rechnern).

Allerdings bestehen systembedingt folgende zwei Voraussetzungen, um diese CD/DVD-Drive Infos tief aus dem System heraus auslesen zu können:
(1) man muss mit Administratorrechten eingeloggt sein
(2) es muss eine Disk (CD oder DVD im Laufwerk liegen)

Luckie 18. Dez 2011 05:17

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Ich hätte jetzt noch die SetupAPI vorgeschlagen.

Mithrandir 18. Dez 2011 09:18

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Zitat:

Zitat von ASM (Beitrag 1141957)
(1) man muss mit Administratorrechten eingeloggt sein

Kann man sowas nicht über die Rechteverwaltung steuern? Ich meine, da war was...

ASM 18. Dez 2011 21:11

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Zitat:

Zitat von Luckie (Beitrag 1141973)
Ich hätte jetzt noch die SetupAPI vorgeschlagen.

Mit der SetAPI, jedenfalls der zu Jedi gehörigen, lassen sich - soweit ich erkennen kann - nur die im System installierten Treiber anzeigen. Und zwar dabei kollektiv subsummiert als "DVD/CD-ROM Laufwerke".
Eine Differenzierung, welches Laufwerk nun ein CDROM ist und welches ein DVD-Lw,, scheint aber damit nicht zu gehen. Ebenso nicht wie weitergehende Abfragen, ob es sich dabei um ein CD bzw. DVD-Lw mit nur READ- oder um eines mit READ/WRITE-Option (also um einen Brenner) handelt, usw. Die von mir genannte TIsoLib kann das aber alles.

Jetzt habe ich die TIsoLib ergänzend auch einmal in Delphi XE eingesetzt (bisher hatte ich sie immer nur in D7 verwendet): nach nur geringfügigen Korrekturen im Quelltext der Library funktioniert diese ebenso im XE einwandfrei (unter WinXP getestet) und mit dem exakt gleichen Ergebnis wie zuvor bei ihrer Verwendung in D7. Zwingend notwendig zum Einsatz mit XE sind nur einige Korrekturen in der Library hinsichtlich der Deklaration von String (AnsiString vs. Widestring) und PChar (PAnsiChar vs. PWideChar).

CCRDude 21. Dez 2011 21:42

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Zitat:

Zitat von DeddyH (Beitrag 1141787)
Sieht wohl so aus:
Zitat:

Wie bekomme ich also raus, ob es ein CD oder DVD-Laufwerk ist ?

Hmm... warum zitierst Du ausgerechnet das? Das war der Grund, warum ich überhaupt auf die Frage kam, weil da nicht klar hervorgeht, ob es ein exlusives "oder" ist.

Wenn ich mir jetzt aber alles durchlese - im Kontext betrachtet dürftest Du recht haben :)

hathor 22. Dez 2011 00:56

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Size in
Win32_CDROMDrive class
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

MaxMediaSize in
CIM_CDROMDrive class
http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

Ausgabe:

__GENUS : 2
__CLASS : Win32_CDROMDrive
__SUPERCLASS : CIM_CDROMDrive
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_CDROMDrive.DeviceID="IDE\\CDROMSLIMTYPE_BD_
_E__DS4E1S__________________EA17____\\4&6F0BE0C&0& 0.2.0"
__PROPERTY_COUNT : 49
__DERIVATION : {CIM_CDROMDrive, CIM_MediaAccessDevice, CIM_LogicalDevice, CIM_LogicalElement...}
__SERVER : QUAD
__NAMESPACE : root\CIMV2
__PATH : \\QUAD\root\CIMV2:Win32_CDROMDrive.DeviceID="IDE\
\CDROMSLIMTYPE_BD__E__DS4E1S__________________EA17 ____\\4&6F0BE0C&0&0.2.0"
Availability : 3
Capabilities : {3, 4, 7}
CapabilityDescriptions : {Random Access, Supports writing, Supports Removable Media}
Caption : Slimtype BD E DS4E1S
CompressionMethod : Unknown
ConfigManagerErrorCode : 0
ConfigManagerUserConfig : False
CreationClassName : Win32_CDROMDrive
DefaultBlockSize :
Description : CD-ROM-Laufwerk
DeviceID : IDE\CDROMSLIMTYPE_BD__E__DS4E1S__________________E A17____\4&6F0BE0C&0&0.2.0
Drive : D:
DriveIntegrity :
ErrorCleared :
ErrorDescription :
ErrorMethodology :
FileSystemFlags :
FileSystemFlagsEx :
Id : D:
InstallDate :
LastErrorCode :
Manufacturer : (Standard-CD-ROM-Laufwerke)
MaxBlockSize :
MaximumComponentLength :
MaxMediaSize :
MediaLoaded : False
MediaType : DVD Writer
MfrAssignedRevisionLevel : EA17
MinBlockSize :
Name : Slimtype BD E DS4E1S
NeedsCleaning :
NumberOfMediaSupported :
PNPDeviceID : IDE\CDROMSLIMTYPE_BD__E__DS4E1S__________________E A17____\4&6F0BE0C&0&0.2.0
PowerManagementCapabilities :
PowerManagementSupported :
RevisionLevel :
SCSIBus : 0
SCSILogicalUnit : 0
SCSIPort : 0
SCSITargetId : 2
SerialNumber : 09270000xxxx
Size :
Status : OK
StatusInfo :
SystemCreationClassName : Win32_ComputerSystem
SystemName : QUAD
TransferRate : -1
VolumeName :
VolumeSerialNumber :

PS C:\Program Files (x86)\MrEdSoftware\PowerShellScriptOMatic v.1.0>

http://www.it-visions.de/Scripting/W...n32_CDROMDrive

Garfield 4. Jan 2012 14:57

AW: Feststellen, ob CD oder DVD-Laufwerk
 
Zitat:

Zitat von ASM (Beitrag 1141957)
Allerdings bestehen systembedingt folgende zwei Voraussetzungen, um diese CD/DVD-Drive Infos tief aus dem System heraus auslesen zu können:
(1) man muss mit Administratorrechten eingeloggt sein
(2) es muss eine Disk (CD oder DVD im Laufwerk liegen)

Aber nur für Dein Tool.

Es sind lediglich Brennrechte erforderlich und die Capabilities (Operation Code $5A, PageCode $2A) kann man auch ohne eingelegtes Medium auslesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Seite 2 von 2     12   

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