mirror of https://github.com/quasar/Quasar.git
31 lines
858 B
C#
31 lines
858 B
C#
![]() |
// This code is distributed under MIT license.
|
|||
|
// Copyright (c) 2015 George Mamaladze
|
|||
|
// See license.txt or http://opensource.org/licenses/mit-license.php
|
|||
|
|
|||
|
using System.Windows.Forms;
|
|||
|
using Microsoft.Win32.SafeHandles;
|
|||
|
|
|||
|
namespace xClient.Core.Keylogger.WinApi
|
|||
|
{
|
|||
|
internal class HookProcedureHandle : SafeHandleZeroOrMinusOneIsInvalid
|
|||
|
{
|
|||
|
private static bool _closing;
|
|||
|
|
|||
|
static HookProcedureHandle()
|
|||
|
{
|
|||
|
Application.ApplicationExit += (sender, e) => { _closing = true; };
|
|||
|
}
|
|||
|
|
|||
|
public HookProcedureHandle()
|
|||
|
: base(true)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
protected override bool ReleaseHandle()
|
|||
|
{
|
|||
|
//NOTE Calling Unhook during processexit causes deley
|
|||
|
if (_closing) return true;
|
|||
|
return HookNativeMethods.UnhookWindowsHookEx(handle) != 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|