Entwickler-Ecke

Windows API - Ist das CD-Rom laufwerk geöffnet??


MBK - Do 18.07.02 17:44
Titel: Ist das CD-Rom laufwerk geöffnet??
gibts nen Befehl oder eine Funktion um zu erfahren ob ein CD Rom Laufwerkwerk im moment geöffnet ist?


Arakis - Fr 19.07.02 18:19

Hi,
versuch einfach, das Verzeichnis der CD anzuzeigen. Wenn es eine Exception gibt, ist es auf :mrgreen:
Jedenfalls kann ich nur sagen, wie man abfängt, wann dass CD-ROM-Laufwerk geöffnet und wieder geschlossen wird.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure WMDeviceChange (var Msg: TMessage); message WM_DEVICECHANGE;

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMDeviceChange (var Msg: TMessage);
const
  CD_IN = $8000;
  CD_OUT = $8004;
var
  myMsg: string;
begin
  inherited;
  case Msg.wParam of
    CD_IN  : Begin
                  myMsg  := 'CD eingelegt';
                  ShowMessage(myMsg);
             End;
    CD_OUT : Begin
                  myMsg := 'CD nicht eingelegt!';
                  ShowMessage(myMsg);
             End;
  end;
end;

end.


Bis dann
user defined image

Moderiert von user profile iconAXMD: Code- durch Delphi-Tags ersetzt


Klabautermann - Fr 19.07.02 18:23

Hallo,

Arakis hat folgendes geschrieben:
Jedenfalls kann ich nur sagen, wie man abfängt, wann dass CD-ROM-Laufwerk geöffnet und wieder geschlossen wird.


fragst du damit ab, ob das Laufwerk offen ist oder fragst du ob eine CD eingelegt ist. Ich meine in einem Anderen Forum (war es das alte DF?) mal gelesen zu haben, das ersteres nicht möglich sei und man sich deshalb mit letzterem behelfen müsse.
Bitte kläre mich auf :)

Klabautermann


Arakis - Fr 19.07.02 18:30

Gerne :wink:

Wenn das CD-ROM-Laufwerk geöffnet wird, wird die Message WM_DEVICECHANGE gesendet. In Ihr ist die Information, ob das CD-ROM-Laufwerk im geöffnet, oder geschlossen wurde. Aber ohne öffnet und schließen des Laufwerks gibt es diese Message nicht :cry:

Bis dann
user defined image


Jan11 - Mo 14.08.06 18:01

kann mal bitte jemand erklären wie ich das beutze? ich hab das jetzt in meinem programm, und dann? gibt das nen wert aus oder muss ich die nachricht auffangen oder wie?


Jakob Schöttl - Mo 14.08.06 18:23

so kann mans angeblich öffnen und schliessen über das Programm
Das war zwar nicht deine Frage, aber vllt hilft es ja trotzdem irgendwie weiter
http://www.delphi-fundgrube.de/faq03.htm#topic0323


JayEff - Mo 14.08.06 18:53

user profile iconJan11 hat folgendes geschrieben:
kann mal bitte jemand erklären wie ich das beutze? ich hab das jetzt in meinem programm, und dann?

Sobald du das Programm laufen hast, und das CD laufwerk auf oder zu machst, wird eine meldung angezeigt. Soweit zur theorie... *ausprobier* leider passiert garnichts. Unter WinXP Home (SP1 glaub) ist der Code wirkungslos.


Delete - Mo 14.08.06 19:58

Könnte mir mal jemand verraten wozu ich das wissen muss? :gruebel:


JayEff - Mo 14.08.06 20:18

user profile iconLuckie hat folgendes geschrieben:
Könnte mir mal jemand verraten wozu ich das wissen muss? :gruebel:

Was, dass der Code nicht funzt, oder dass das CD laufwerk offen ist bzw nicht?


Delete - Sa 19.08.06 15:08

Zweiteres.


JayEff - Sa 19.08.06 20:43

Ist ne gute Frage - Wüssten wir das, könnten wir Wege zur umgehung einer solchen Abfrage bieten, falls uns kein direkter Weg einfällt. MBK ... ?