Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CD Laufwerk Status ermitteln (https://www.delphipraxis.net/69321-cd-laufwerk-status-ermitteln.html)

mOzZzI 13. Mai 2006 14:17


CD Laufwerk Status ermitteln
 
Hallo Dp-Freunde,

ich wollte mal den Status eines CD Laufwerks ermitteln, dazu habe ich folgenden Code gefunden:

Delphi-Quellcode:
mciSendString('Set cdaudio door closed wait', Nil, 0, Handle)
Jetzt wollte ich beim PopUp'pen des PopUpMenüs den Status abfragen, also ungefähr so:

Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
if mciSendString('Set cdaudio door closed wait', Nil, 0, Handle)= 0  then
begin
 Status1.Caption:=('Status » Geschlossen')
 end;
if mciSendString('Set cdaudio door closed wait', Nil, 0, Handle)= 1 then
 begin
 Status1.Caption:=('Status » Geöffnet');
 end;
end;
Leider funktioniert es nur wenn es Geschlossen ist...
Ich weiß da nicht weiter...

Ich danke euch jetzt schon für eure Hilfe.

Grüße Philipp

RWarnecke 13. Mai 2006 14:51

Re: CD Laufwerk Status ermitteln
 
Hallo,

vielleicht hilft Dir ja dieser Link weiter.

mOzZzI 13. Mai 2006 15:05

Re: CD Laufwerk Status ermitteln
 
Zitat:

Zitat von RWarnecke
Hallo,

vielleicht hilft Dir ja dieser Link weiter.

Wirklich weitergeholfen hat mir es nicht da ich nicht genau weiß wie das funzen soll... aber ich versuche eine Prozedur zu schreiben...:

Delphi-Quellcode:
procedure TForm1.Status(const open: Boolean);
begin
 if mciSendString('Set cdaudio door closed wait', Nil, 0, Handle)=0
 then
  Open:= True else
  Open:= False;
 end;
Aber das geht nicht...

das man dann ungefähr so abfragt:

Delphi-Quellcode:
if Status(True) then showmessage('CD Laufwerk geöffnet!');

mOzZzI 16. Mai 2006 18:53

Re: CD Laufwerk Status ermitteln
 
Hi;

hier
habe ich gefunden wie man das überprüfen könnte aber wie?


Noch eine Variante:

Delphi-Quellcode:
function TForm1.CD_Status:Boolean;
begin
 result:= mciSendString('Set cdaudio door closed', Nil, 0, Handle)=0
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
 begin
 if CD_Status then
  begin
  Status1.Caption:='Closed';
  end;
 end;

 begin
 if not CD_Status then
  begin
  Status1.Caption:='Opened';
  end;
 end;
end;
Ich hoffe das ihr mir helfen könnt..

Hawkeye219 16. Mai 2006 23:06

Re: CD Laufwerk Status ermitteln
 
Hallo,

hier sind noch zwei Links zu diesem Thema: Link1 Link2

Gruß Hawkeye

Daniel G 17. Mai 2006 13:30

Re: CD Laufwerk Status ermitteln
 
Hi,

natürlich ist es möglich, heraus zu finden, ob ein Laufwerk bereit ist oder nicht. Dein Weg wird dich wahrscheinlich über ASPI bzw. SPTI (ab Win2000 aufwärts) zum Ziel führen. Suche einfach mal nach "ASPI", imho gibt es bei Torry.net eine TASPILib. Bin mir aber nicht sicher...(was die Library angeht..)

Daniel G 17. Mai 2006 15:58

Re: CD Laufwerk Status ermitteln
 
Hmm, hab' da noch ne interessante Struktur gefunden:

MSDN-Library durchsuchenVDS_DISK_STATUS

//Edit: Ok, vergiss' es. Man sollte erst zu Ende lesen, dann posten:

Requires Windows Vista.

Kein Wunder, dass man über die MSDN (noch) nichts findet. Also einfach im Hinterkopf behalten und noch ein paar Jahre warten. Dann hat's jeder. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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