Win32-API analog zu senden/SIGTERM abfangen
Unter POSIX OS es ist das signal-API, die ermöglicht, um ein signal zu verarbeiten, um es herunterzufahren
mit töten und Sie können fangen Sie mit sigaction und tun, was Sie brauchen;
Aber Win32 ist nicht POSIX-system, also:
- Wie kann ich mit shutdown-Ereignisse, die kommen können, zum Beispiel aus "Prozess Beenden" in der "Task-manager"?
- Was ist die standard-API für das senden von shutdown-signal zu Win32 Anwendung??
Ich spreche nicht über die GUI, ich spreche von TCP/IP-server, der sollte schön Herunterfahren. dass nicht laufen wie windows service.
InformationsquelleAutor Artyom | 2009-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhalten Sie eine
WM_QUIT
Nachricht auf deinem ersten erstellten thread.Wenn Sie nicht behandeln, dass Sie Ihren Prozess gewaltsam Herunterfahren.
So einfach implementieren Sie eine message-queue in Ihrem ersten thread, die sieht für die
WM_QUIT
NachrichtKann ich die verwenden dieselbe Methode für die Konsole Strg+C und für die Prozess-runnig als Windows-Dienst? Oder sollte ich mit unterschiedlichen Methoden für jede einzelne von Ihnen?
InformationsquelleAutor Christopher
MSDNs Unix Code Migration Guide hat ein Kapitel über Win32-code-Wandlung und Signalverarbeitung.
Obwohl Microsoft hat beschlossen, zu archivieren, diese geniale Anleitung, ist es sehr nützlich.
Drei Methoden beschrieben:
Native Signale
Ereignis-Objekte
Nachrichten
InformationsquelleAutor Kb.
Können Windows-Power-Management von MSDN wäre hilfreich. Aber es befasst sich mit system-Ereignisse eher als pro Prozess.
Für einen Prozess, Sie wäre in der Lage zu erkennen, Kündigung mit
WM_CLOSE
. Sie würden in der Handhabung von windows-Botschaften. Wenn es eine Konsole-Anwendung, die Sie brauchen würde, um installieren Sie ein Steuerelement-handler; werfen Sie einen Blick auf SetConsoleCtrlHandler auf MSDNInformationsquelleAutor Indy9000