发送/捕获SIGTERM的Win32 API的模拟(Win32 API analog of send

2019-06-27 12:38发布

在POSIX OS有信号的API,允许发送信号处理用kill将其关闭,您可以用的sigaction抓住它和你所需要的;

然而,Win32的不POSIX系统,所以:

  • 我如何处理可能到来的关机事件,例如在“任务管理器”,“结束进程”?
  • 什么是用于发送关机信号到Win32应用程序的标准API?

我说的不是GUI,我说的,应该是很好的关闭TCP / IP服务器。 这并不像Windows服务运行。

Answer 1:

你得到一个WM_QUIT你的第一个创建的线程上的消息。

当你不搞定,你的过程是强行关机。

因此,只要实现你的第一个线程消息队列,它看起来对WM_QUIT消息



Answer 2:

MSDNs UNIX代码迁移指南有一个约章的Win32代码转换和信号处理 。
虽然微软已经决定归档此辉煌的指导,这是非常有用的。

三种方法进行了说明:
本地信号
活动对象
消息



Answer 3:

从可能是Windows电源管理MSDN将是有益的。 但它与系统的事件,而不是每个过程处理。

对于一个过程中,你将能够检测终止与WM_CLOSE 。 您将需要处理窗口消息。 如果它是一个控制台应用程序,你需要安装一个控制处理器; 看看SetConsoleCtrlHandler MSDN上



文章来源: Win32 API analog of sending/catching SIGTERM