AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CDRom Schublade geöffnet?!?

Ein Thema von Hellsgore · begonnen am 30. Aug 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
Hellsgore

Registriert seit: 30. Aug 2004
1 Beiträge
 
#1

CDRom Schublade geöffnet?!?

  Alt 30. Aug 2004, 10:42
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.

Das Forum habe ich schon durchstöbert....

Für Hinweise, Anregungen und jede Art von Hilfe bin ich sehr dankbar...


*winke*
Hellsgore
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: CDRom Schublade geöffnet?!?

  Alt 30. Aug 2004, 10:48
Ich würd mal sagen nein sonst würde Windows wohl nicht ab und zu gucken ob eine CD im Laufwerk ist.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von FastJack2
FastJack2

Registriert seit: 22. Mär 2004
Ort: Lübeck
54 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: CDRom Schublade geöffnet?!?

  Alt 30. Aug 2004, 11:31
Hy.

IFAIC müsstest du dazu die windows-API-Funktion MSDN-Library durchsuchenDeviceIoControl benutzen ... musste mal die MSDN durchwühlen ...

[edit]
was auch noch in Frage kommt ist
mciSendCommand
... bin mir dabei aber nicht so sicher ...
[/edit]

greetz
-FastJack2
wo unrecht zu recht wird, wird widerstand zur pflicht ! (c) '98 - WoF board
  Mit Zitat antworten Zitat
OregonGhost

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

Re: CDRom Schublade geöffnet?!?

  Alt 30. Aug 2004, 11:59
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 MSDN oder mal googeln.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: CDRom Schublade geöffnet?!?

  Alt 5. Sep 2004, 19:29
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:
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;
bringt dir natürlich nur was wenn du wie ich, nach dem öffnen, schauen willst wann das laufwerk wieder zugemacht worden ist...

//Edit: sch**** ! hab grad gemerkt das die funktion auch false zurückgibt wenn keine CD im laufwerk ist
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#6

Re: CDRom Schublade geöffnet?!?

  Alt 6. Sep 2004, 12:04
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>
  Mit Zitat antworten Zitat
OregonGhost

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

Re: CDRom Schublade geöffnet?!?

  Alt 6. Sep 2004, 13:15
@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.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:12 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