Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Autorun-Programm beenden wenn CD ausgeworfen (https://www.delphipraxis.net/59442-autorun-programm-beenden-wenn-cd-ausgeworfen.html)

Martin K 22. Dez 2005 11:36


Autorun-Programm beenden wenn CD ausgeworfen
 
Hi Leute,

ich habe ein Programm geschrieben, dass mit autorun automatisch gestartet wird, wenn die CD eingelegt wird.

Wie kann es machen, dass das Programm auch wieder geschlossen wird, wenn die CD ausgeworfen wird?
Gibt es da noch eine andere Möglichkeit, außer mit einem Timer ständig zu überprüfen, ob die CD noch drin ist?

Martin K 22. Dez 2005 14:58

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Gibt's da evtl. was mit TMsg.Message?
Irgendein Befehl von Windows?

ichbins 22. Dez 2005 15:05

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Überprüfe einfach mit einem Timer, ob eine bestimmte Datei auf der CD existiert. Wenn nein -> beenden

Martin K 22. Dez 2005 15:11

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
@ichbins:

Was glaubst du wohl, wie ich das hier meinte:
Zitat:

Zitat von Martin K
Gibt es da noch eine andere Möglichkeit, außer mit einem Timer ständig zu überprüfen, ob die CD noch drin ist?

Ob die CD noch drin ist hätte ich wohl dann auch so überprüft...

Aber ich meinte eine andere Möglichkeit, ohne Timer.

Gibt es da nicht von Windows einen Befehl, der gesendet wird, wenn sich die CD-Schublade öffnet ?
Dann müsste ich noch in mein Programm einbinden, dass es beendet werden soll, wenn es diesen Befehl empfängt.
(Da werden doch ständig von Windows irgend welche Befehle gesendet...)

Wenn ein Ordner von einer CD geöffnet ist und ich die CD auswerfe, dann klappt das doch auch... :gruebel:

Martin K 22. Dez 2005 15:23

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Ich hatte mal einen Bildschirmschoner programmiert, den hatte ich so beendet:
Delphi-Quellcode:
//global:
var i: Byte;

//bei FormCreate:
  Application.OnMessage:=Beenden;
  i:=0;

procedure TForm1.Beenden(var Msg: TMsg; var Handled: Boolean);
begin
  If Msg.Message=WM_MouseMove then
    Inc(i)
  else
  If (Msg.Message=WM_KeyDown) or (Msg.Message=WM_Activate) or (Msg.Message=WM_ActivateApp) or (Msg.Message=WM_NCActivate) then
    i:=99;

  If i>15 then
    Close;
end;
Jetzt bräuchte ich eigentlich nur den Befehl von Windows, ob die CD ausgeworfen wurde.
Also irgendwas mit:
Delphi-Quellcode:
If Msg.Message=WM_CDAusgeworfen then Close;
Kennt sich jemand damit aus ?

Bernhard Geyer 22. Dez 2005 15:45

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
CDEvents

Martin K 22. Dez 2005 15:49

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
@Bernhard Geyer:
Nett, dass du mir einen Link schickst. So eine Seite mit einer Übersicht aller Windows Messages wäre auch net schlecht...
Aber leider gibt's die Seite nicht :(

Bernhard Geyer 22. Dez 2005 15:53

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Zitat:

Zitat von Martin K
@Bernhard Geyer:
Nett, dass du mir einen Link schickst. So eine Seite mit einer Übersicht aller Windows Messages wäre auch net schlecht...
Aber leider gibt's die Seite nicht :(

Schau dir halt die Sourcen an. Das Auswerfen der CD-Rom wird über MSDN-Library durchsuchenWM_DEVICECHANGE gesteuert

Martin K 22. Dez 2005 16:01

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Dann müsste das also so gehen?
Delphi-Quellcode:
procedure TForm1.Beenden(var Msg: TMsg; var Handled: Boolean);
begin
  If (Msg.Message=WM_DEVICECHANGE) and (not FileExists(Application.ExeName)) then Close;
end;
Werd's gleich mal testen...

Martin K 22. Dez 2005 16:05

Re: Autorun-Programm beenden wenn CD ausgeworfen
 
Das geht leider nicht:
Zitat:

[Fehler] Unit1.pas(893): Undefinierter Bezeichner: 'WM_DEVICECHANGE'
[Warnung] Unit1.pas(893): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
Wo könnte der Fehler liegen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Seite 1 von 2  1 2      

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