![]() |
CD- oder DVD-Laufwerk
Liste der Anhänge anzeigen (Anzahl: 2)
Über das Windows Device Management läßt sich mit der Funktion
![]() ![]() ![]() ![]() Der ControlCode IOCTL_STORAGE_GET_MEDIA_TYPES_EX und die Struktur GET_MEDIA_TYPES:
Delphi-Quellcode:
Die MediaInfo ist auskommentiert, da sie nicht benötigt wird.
const
FILE_DEVICE_CD_ROM = $00000002; FILE_DEVICE_MASS_STORAGE = $0000002d; FILE_DEVICE_DVD = $00000033; const IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE; const METHOD_BUFFERED = 0; const FILE_ANY_ACCESS = 0; const IOCTL_STORAGE_GET_MEDIA_TYPES_EX = (IOCTL_STORAGE_BASE shl 16) or ($0301 shl 2) or METHOD_BUFFERED or (FILE_ANY_ACCESS shl 14); type TGET_MEDIA_TYPES = packed record DeviceType : DWord; MediaInfoCount : DWord; // MediaInfo : Array[0..0] of TDEVICE_MEDIA_INFO; end; PGET_MEDIA_TYPES = ^TGET_MEDIA_TYPES; Die Funktion:
Delphi-Quellcode:
Der Funktion wird das Laufwerksbuchstabe übergeben. Das Ergebnis der Funktion entspricht dem Ergebnis der Ausführung der Funktion DeviceIOControl. War die Ausführung erfolgreich bekommt man als Type CD-ROM, DVD oder unbekannt zurück.
function GetMediaType(sDrive: AnsiChar; out sType: AnsiString): Boolean;
{******************************************************************************* * Laufwerkstyp: CD, DVD, Unbekannt. } var hDevice : THandle; mediaTypes : PGET_MEDIA_TYPES; cBuffer : array [0..2047] of AnsiChar; nReturned : Cardinal; begin Result := False; hDevice := CreateFileA(PAnsiChar(Format('\\.\%s:', [sDrive])), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0 ); if hDevice <> INVALID_HANDLE_VALUE then begin nReturned := 0; Result := DeviceIoControl(hDevice, IOCTL_STORAGE_GET_MEDIA_TYPES_EX, nil, 0, @cBuffer, SizeOf(cBuffer), nReturned, nil); if Result then begin mediaTypes := @cBuffer; case mediaTypes.DeviceType of FILE_DEVICE_CD_ROM : sType := 'CD-ROM'; FILE_DEVICE_DVD : sType := 'DVD'; else sType := 'Unknown'; end; end; CloseHandle(hDevice); end; end; |
AW: CD- oder DVD-Laufwerk
Hi,
Ich wollte mein Feedback abgeben zu dem Programm. Das Programm hat meine 2 DVD Laufwerke richtig erkannt. Super :thumb: |
AW: CD- oder DVD-Laufwerk
Vielen Dank für Dein Feedback. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr. |
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