AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ereignis beim Shutdown plattformübergreifend
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignis beim Shutdown plattformübergreifend

Ein Thema von paelesoft · begonnen am 24. Aug 2004 · letzter Beitrag vom 30. Aug 2004
Antwort Antwort
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#1

Ereignis beim Shutdown plattformübergreifend

  Alt 24. Aug 2004, 18:04
Wie der Shutdown von Win-Maschinen bei VCL (mit Hilfe von Messages) abgefangen werden
kann, ist bekannt:

Ereignis beim Shutdown

Aber weiß jemand, wie ich das plattformübergreifend z.B. mit CLX in Kylix machen
kann?
Gruß Erik
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#2

Re: Ereignis beim Shutdown plattformübergreifend

  Alt 29. Aug 2004, 12:51
IChw eiß nicht welches, aber IMO ist das eines der SIGINT()s

Code:
signal(SIGINT, shutDown) ...
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
  Mit Zitat antworten Zitat
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#3

Re: Ereignis beim Shutdown plattformübergreifend

  Alt 30. Aug 2004, 22:48
Danke, Assarbat. Der Tip war (denke ich ) 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.
Gruß Erik
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#4

Re: Ereignis beim Shutdown plattformübergreifend

  Alt 30. Aug 2004, 23:22
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).
  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 11:10 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