gpt4 book ai didi

c# - 如何在 PowerShell 中捕获控制台关闭事件?

转载 作者:太空狗 更新时间:2023-10-30 00:40:36 25 4
gpt4 key购买 nike

如何在 PowerShell 中捕获控制台关闭事件?

我已经尝试添加一个控制台控制处理程序,它适用于 CMD,但不适用于 PowerShell,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);
}

...

最佳答案

在 PowerShell 中使用引擎事件 PowerShell.Exiting 并指定处理它的脚本 block 。

例子如下:

Register-EngineEvent PowerShell.Exiting -Action { "Exiting $(Get-Date)" >> C:\TEMP\log.txt }

关于c# - 如何在 PowerShell 中捕获控制台关闭事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com