Autor Beitrag
Philipp_Reitter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: So 26.02.06 07:13 
hi

ich hab ein Programm gemacht das verdeckt läuft (nur als prozess) und jetzt möchte ic hdass wenn man sich in windos abmeldet der noch eine Aktion ausführt.
wie ist das möglich

Danke im vorraus


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 26.02.2006 um 09:06
andras
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 460

Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
BeitragVerfasst: So 26.02.06 12:29 
ausblenden Delphi-Quelltext
1:
2:
private
    procedure WMQueryEndSession (var M: TWMQueryEndSession); message WM_QUERYENDSESSION;



ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.WMQueryEndSession (var M: TWMQueryEndSession);
begin
 //hier steht dein quelltext
end;


die procedure wird aber auch aufgerufen, wenn der pc abgeschalten oder neu gestartet wird. der quelltext der bei diesem ereignis aufgerufen wird, sollte nicht zu lang sein, sonst wird er von windows abgewürgt. :x
afk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102

Win 2K, Win XP
Delphi 2006 Arch., Delphi 6 Ent., MS-SQL 2005 & 2000
BeitragVerfasst: So 26.02.06 12:34 
Ich weiß nicht, ob man das mit Hooks eleganter lösen kann, aber wenn Deine Applikation ein (unsichtbares) MainForm hat, dann kannst Du das z.B. so lösen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure MainForm.OnCloseQuery(Sender: TComponent; var CanClose: Boolean);
begin
  If InSendMessage then
  begin
    // Hier die gewünschten Aktionen implementieren.
    // Durch CanClose:=False kann das Programm-Ende 
    // verhindert werden, dadurch wird ggf. auch der
    // ShutDown bzw. das Abmelden verhindert.
  end;
end;


Das hat allerdings beim Beenden des Programms über den Taskmanager die gleiche Wirkung wie beim Abmelden bzw. Herunterfahren.

Ich hoffe, es ist kein Fehler drin, hab's aus dem Gedächtnis reingetippt (ungetestet). Nachprüfen kann ich es erst Morgen.


Gruß Axel

_________________
Man muß sparn wo mn knn !