![]() |
Ereignis beim Shutdown plattformübergreifend
Wie der Shutdown von Win-Maschinen bei VCL (mit Hilfe von Messages) abgefangen werden
kann, ist bekannt: ![]() Aber weiß jemand, wie ich das plattformübergreifend z.B. mit CLX in Kylix machen kann? |
Re: Ereignis beim Shutdown plattformübergreifend
IChw eiß nicht welches, aber IMO ist das eines der SIGINT()s
Code:
Das Abfangen muß also auch gehen, denn bei Konsole wird das SIGINT ja auch abgefangen (zB wenn du Ctrl-C drückst). Vielleicht hilft dir das Stichwort was. Ohne Compilerdirektiven wirst du wohl nicht auskommen - also eine Version der gleichen Funktion auf Win und eine auf Lnx
signal(SIGINT, shutDown) ...
|
Re: Ereignis beim Shutdown plattformübergreifend
Danke, Assarbat. Der Tip war (denke ich :wink: ) absolut richtig.
Habe aber noch das Problem, dass die App nicht wie gewünscht reagiert. Das KILL -Signal lässt sich nicht umleiten (steht in der manpage) aber das SIGTERM sollte gehen. Geht aber nicht! Oder fährt an der Stelle schon das Programm runter und eine Messagebox wird unterdrückt??? Aber müsste es dann nicht wenigstens piepen? Habe ich vielleicht "TermProcess" falsch deklariert oder eingebunden? Könnte bitte jemand mal einen Blick drauf werfen?
Delphi-Quellcode:
unit Sig1;
interface uses LibC, SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms, QDialogs, QStdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; procedure TermProcess(Signal : Integer); cdecl; var Form1: TForm1; implementation {$R *.xfm} var SaveSigHandler : TSignalHandler = nil; procedure TermProcess; begin Beep; Application.MessageBox('Terminate','Signal'); if @SaveSigHandler <> nil then SaveSigHandler(Signal); end; procedure TForm1.FormCreate(Sender: TObject); begin SaveSigHandler:=signal(SIGTERM,TermProcess); end; end. |
Re: Ereignis beim Shutdown plattformübergreifend
Da ich selber kein Kylix habe, kann ich weiter nicht helfen. Frag doch mal im speziellen Kylix-Bereich nach (mit Verweis auf diesen Beitrag hier).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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