如何在PowerShell中捕获控制台关闭事件?
我已经尝试添加一个控制台控制处理程序,对于CMD来说它可以正常工作,但是在PowerShell中却不行,有没有一种不同的方法?
示例:
namespace Test_ConCtrl {
class Program {
public enum CtrlTypes : uint { CTRL_C = 0, ... }
public delegate Boolean ConsoleCtrl_Delegate(CtrlTypes CtrlType);
[DllImport("kernel32.dll")]
static extern bool SetConsoleCtrlHandler(
ConsoleCtrl_Delegate HandlerRoutine, bool Add);
public static Boolean My_CtrlHandler(CtrlTypes inConType) {
switch(inConType) { ... }
}
static void Add_Handler() {
ConsoleCtrl_Delegate myHandler = My_CtrlHandler;
SetConsoleCtrlHandler(myHandler, true);
}
...