AGB  ·  Datenschutz  ·  Impressum  







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

CD Laufwerk abfragen

Ein Thema von the_summoner · begonnen am 26. Sep 2008 · letzter Beitrag vom 10. Dez 2008
Antwort Antwort
the_summoner

Registriert seit: 23. Nov 2006
3 Beiträge
 
#1

CD Laufwerk abfragen

  Alt 26. Sep 2008, 16:03
Hallo Delphi Com,

ich bin zur Zeit dabei ein Programm zu schreiben welches auf einer CD als eine Art Setup Menü fungieren soll.

Das funktioniert bisher alles auch soweit, nur häng ich gerade an einem Problem.
Und zwar wenn das CD Laufwerk geöffnet wird, bleibt das Menü auch noch geöffnet. Und wenn dann über eines der MouseOver events auf eine Funktion zugegriffen wird crasht es natürlich.

Nun meine Frage: Wie kann ich durchgehend abfragen ob die CD noch im Laufwerk liegt? bzw. Abfragen wenn das Laufwerk geöffnet wird, damit ich mich um den Crash kümmern kann.

Ich hab schon einiges danach durchsucht aber immer nur was zum Laufwerk öffnen/schließen gefunden...

Danke schonmal für Antworten, und sorry falls es den Thread schonmal gab, hab ihn nich gefunden :X

mfg Norman
Norman
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

Re: CD Laufwerk abfragen

  Alt 26. Sep 2008, 17:26
Hallo norman,

wenn ich Dich richtig verstanden habe, willst Du ein Programm von einer CD starten, und das Programm informieren, wenn auf diese CD nicht mehr zugegriffen werden kann?

Mach es einfach und frag nach einer bestimmten Datei (z.B. die Programmdatei), wenn die nicht mehr gefunden wird, ist die CD nicht mehr lesbar/im Laufwerk.

Nicht elegant aber effektiv

Gruß
K-H
  Mit Zitat antworten Zitat
the_summoner

Registriert seit: 23. Nov 2006
3 Beiträge
 
#3

Re: CD Laufwerk abfragen

  Alt 26. Sep 2008, 22:37
Danke für die Antwort aber so hab ich es schon probiert.

Ich hatte einen Timer auf 2 sec testweise gestellt und ihn immer nach der Autorun.inf von der CD suchen lassen.
An sich funktioniert es auch soweit, allerdings werden bei den MouseOver events einige Sachen aus einer XML Datei ausgelesen und es kommt zu einer Exception die ich nur schwer nachprüfen kann, aber definitiv noch vor dem abfragen nach der gesuchten Datei.

Deshalb dachte ich, vllt es gäbe eine Funktion mit der man das Laufwerk direkt abfragen kann?

Wenn es wirklich nicht anders geht muss wohl mal die komplette Funktion zerpflücken und nachsehen auf was noch alles zugegriffen wird.
Norman
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: CD Laufwerk abfragen

  Alt 26. Sep 2008, 22:42
Zitat von the_summoner:
Ich hatte einen Timer auf 2 sec testweise gestellt und ihn immer nach der Autorun.inf von der CD suchen lassen.
An sich funktioniert es auch soweit, allerdings werden bei den MouseOver events einige Sachen aus einer XML Datei ausgelesen und es kommt zu einer Exception die ich nur schwer nachprüfen kann, aber definitiv noch vor dem abfragen nach der gesuchten Datei.
Überprüf die Existenz der Datei doch einfach unmittelbar vor dem auslesen, oder, noch besser, überprüf vor jedem Dateizugriff ob die Datei, auf die zugegriffen werden soll, existiert.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: CD Laufwerk abfragen

  Alt 26. Sep 2008, 22:56
Eigentlich ist eine ständige Abfrage überflüssig, wenn man eine gescheite Fehlerbehandlung implementiert hat.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#6

Re: CD Laufwerk abfragen

  Alt 27. Sep 2008, 10:23
Zitat von the_summoner:
Nun meine Frage: Wie kann ich durchgehend abfragen ob die CD noch im Laufwerk liegt? bzw. Abfragen wenn das Laufwerk geöffnet wird, damit ich mich um den Crash kümmern kann.
Eine durchgehende Abfrage ist nicht notwendig. Wenn eine CD entfernt bzw eingelegt wird, wird eine Message WM_DEVICECHANGE versendet. Darin ist der Laufswerkstyp, das Laufwerk und das Ereignis enthalten. Das musst Du dann entsprechend auswerten.

http://msdn.microsoft.com/en-us/libr...80(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...15(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...46(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...49(VS.85).aspx
http://www.delphi-treff.de/tipps/system/tipp/138/
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
the_summoner

Registriert seit: 23. Nov 2006
3 Beiträge
 
#7

Re: CD Laufwerk abfragen

  Alt 29. Sep 2008, 10:04
Guten morgen und vielen dank für die Antworten.

Genau nach sowas wie der WM_DEVICECHANGE hab ich gesucht.

Wegen der gescheiten Fehlerbehandlung kann ich zu meiner Verteidigung sagen, dass ich das Programm zur Zeit nur von einem Kollegen weiterführe und somit die Anfänge des Programms nicht von mir sind und da noch nichts in der Richtung implementiert ist

Aber danke an alle. Es klappt jetzt so wie ich mir das vorgestellt hatte.

mfg Norman
Norman
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#8

Re: CD Laufwerk abfragen

  Alt 10. Dez 2008, 13:25
Hi,

ich habe eine zusätzliche Frage zu den Thema WMDeviceChange.

Ich habe das nach dem Tipp der oben angeben ist programiert. Ich bekomme auch eine Meldung wenn ein Datenträger eingelegt/entfernt wird.

Wie ist jetzt aber am besten um herauszufinden ob der Datenträger eine

Audio CD
Video CD
Video DVD
(BluRay, HDDVD)

usw ist!?

Muss ich da manuell die Dateistruktur des Datenträgers scannen oder geht das auch einfacher?
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#9

Re: CD Laufwerk abfragen

  Alt 10. Dez 2008, 17:36
Deine Frage hat mit der Ausgangsfrage eigentlich nichts mehr zu tun und Du müsstest einen eigenen Thread aufmachen. An sonsten sieh Dir http://www.delphipraxis.net/internal...ct.php?t=97155 an und suche nach der TISOLib, da ist auch noch einiges drin.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  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 20:21 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