38 lines
1,010 B
C#
38 lines
1,010 B
C#
|
|
using System.Runtime.InteropServices;
|
||
|
|
|
||
|
|
namespace Geekeey.Extensions.Process.Win.Notify;
|
||
|
|
|
||
|
|
internal static class Interop
|
||
|
|
{
|
||
|
|
// ReSharper disable MemberHidesStaticFromOuterClass
|
||
|
|
|
||
|
|
internal static class Libraries
|
||
|
|
{
|
||
|
|
internal const string Kernel32 = "kernel32.dll";
|
||
|
|
}
|
||
|
|
|
||
|
|
internal static class Kernel32
|
||
|
|
{
|
||
|
|
public delegate bool ConsoleCtrlDelegate(uint dwCtrlEvent);
|
||
|
|
|
||
|
|
[DllImport(Libraries.Kernel32)]
|
||
|
|
[SuppressGCTransition]
|
||
|
|
internal static extern int GetLastError();
|
||
|
|
|
||
|
|
[DllImport(Libraries.Kernel32)]
|
||
|
|
[SuppressGCTransition]
|
||
|
|
public static extern bool FreeConsole();
|
||
|
|
|
||
|
|
[DllImport(Libraries.Kernel32)]
|
||
|
|
[SuppressGCTransition]
|
||
|
|
public static extern bool AttachConsole(uint dwProcessId);
|
||
|
|
|
||
|
|
[DllImport(Libraries.Kernel32)]
|
||
|
|
[SuppressGCTransition]
|
||
|
|
public static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate? handlerRoutine, bool add);
|
||
|
|
|
||
|
|
[DllImport(Libraries.Kernel32)]
|
||
|
|
[SuppressGCTransition]
|
||
|
|
public static extern bool GenerateConsoleCtrlEvent(uint dwCtrlEvent, uint dwProcessGroupId);
|
||
|
|
}
|
||
|
|
}
|