Guten Tag
Ich habe ein spezielles Backup-Programm erstellt.
Mit einem externen Programm, habe ich einen Service erstellt damit es auch dann läuft, wenn niemand angemeldet ist und das klappt gut so.
Sobald sich aber jemand anmeldet und wieder abmeldet, wird das Programm beim Abmelden gestoppt.
Ich habe etwas gefunden mit CTRL_LOGOFF_EVENT und SetConsoleCtrlHandler(@HandlerRoutine, True) und dies in meine Applikation eingebaut, aber es hat mir nichts gebracht.
Nach Tests bin ich sicher, dass die HandlerRoutine aufgerufen wird, aber den Case CTRL_LOGOFF_EVENT bin ich mir nicht sicher und wie merkt Delphi, dass ich das CTRL_LOGOFF_EVENT überhaupt verarbeitet habe, wenn ich doch die Funktion als ganzes mit true oder false beantworte und nicht den konkreten Lofoff-Fall?
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:
| implementation
uses Konfig, Job, DBMutation, Mandant, Info;
{$R *.DFM}
function HandlerRoutine(dwCtrlType: DWord): Bool; stdcall; far; var res : bool; begin res := true; case dwCtrlType of CTRL_LOGOFF_EVENT: res := false; end; HandlerRoutine := res; end;
procedure TFormMain.FormActivate(Sender: TObject); begin SetConsoleCtrlHandler(@HandlerRoutine, True); ... end; |
Wenn da jemand bescheid weiss, bin ich riesig dankbar
Gruss Patrick Marti
Moderiert von
Gausi: Delphi-Tags hinzugefügt