![]() |
CDRom Schublade geöffnet?!?
Servus,
habe ein kleines Problem.... Ich öffne und schließe ein CDROM mit "mciSendCommand" Parameter: MCI_OPEN, MCI_SET, etc. Nun möchte ich aber gerne wissen ob die Schublade schon geöffnet ist. Es gibt doch bestimmt eine Möglichkeit dies herauszufinden doch leider bin ich noch auf keine Lösung gestoßen. :roll: Das Forum habe ich schon durchstöbert.... Für Hinweise, Anregungen und jede Art von Hilfe bin ich sehr dankbar... *winke* Hellsgore |
Re: CDRom Schublade geöffnet?!?
Ich würd mal sagen nein sonst würde Windows wohl nicht ab und zu gucken ob eine CD im Laufwerk ist.
|
Re: CDRom Schublade geöffnet?!?
Hy.
IFAIC müsstest du dazu die windows-API-Funktion ![]() [edit] was auch noch in Frage kommt ist mciSendCommand ... bin mir dabei aber nicht so sicher ... [/edit] greetz -FastJack2 |
Re: CDRom Schublade geöffnet?!?
Du könntest mal mit der WMI-Klasse Win32_LogicalDisk rumspielen. Diese enthält zum Beispiel die Parameter Access und Availability. Möglicherweise kannst du anhand eines dieser Zustände erkennen, ob die Schiebe offen ist (z.B. Access steht auf Unknown).
Hinweise zur Benutzung findest du im ![]() |
Re: CDRom Schublade geöffnet?!?
hi, hatte das selbe problem, hab ma bisschen rumgeguckt, folgende funktion gibt, solang das cd-laufwerk auf ist, in jedem fall False zurück:
Delphi-Quellcode:
bringt dir natürlich nur was wenn du wie ich, nach dem öffnen, schauen willst wann das laufwerk wieder zugemacht worden ist...
function IsDriveReady(ADriveChar: Char): Boolean;
var OEM: Cardinal; DW1,DW2: DWORD; begin Oem := SetErrorMode(SEM_FAILCRITICALERRORS); //keine Meldung a lá "Bitte CD einlegen" Result := GetVolumeInformation(PCHAR(ADriveChar+':\'),nil,0,nil,DW1,DW2,nil,0); SetErrorMode(Oem); end; //Edit: sch**** ! hab grad gemerkt das die funktion auch false zurückgibt wenn keine CD im laufwerk ist :wall: |
Re: CDRom Schublade geöffnet?!?
wenn auch wenig hilfreich, aber so könntest du das cdrom
mit hilfe von vb bzw. javascript öffnen:
Code:
<SCRIPT language=VBScript>
<!-- Set oWMP = CreateObject("WMPlayer.OCX.7" ) Set colCDROMs = oWMP.cdromCollection if colCDROMs.Count >= 1 then For i = 0 to colCDROMs.Count - 1 colCDROMs.Item(i).Eject Next ' cdrom End If --> </SCRIPT> <script language="JavaScript"> <!-- // Access the Windows Media Player CD-ROM collection var oWMP = new ActiveXObject("WMPlayer.OCX.7"); var colCDROMS = oWMP.cdromCollection; // If the computer has at least one CD-ROM drive... if (colCDROMS.count >= 1) { // ...eject each one for (i = 0; i > colCDROMS.count; ++i) colCDROMS.item(i).eject(); } --> </script> |
Re: CDRom Schublade geöffnet?!?
@Hellsgore:
Wo du du sowieso MCI benutzt... 1. Warum musst du wissen, ob's offen ist? Was passiert, wenn's offen ist und du es nochmal öffnest? Bleibt es dann auf oder geht's wieder zu? 2. Wenn du MCI_STATUS verschickst und als Flag MCI_STATUS_MODE übergibst, dann wird dir gegebenenfalls MCI_MODE_OPEN zurückgegeben. Das sollte eigentlich die Information sein, die du suchst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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