private static void HookThread()
{
try
{
IntPtr _handle, _hookID;
lock (_lock)
{
if (bHooked) return;
bHooked = true;
using (Process process = Process.GetCurrentProcess())
using (ProcessModule module = process.MainModule)
{
_handle = User32.GetModuleHandle(module.ModuleName);
_hookID = User32.SetWindowsHookEx(User32.WH_KEYBOARD_LL, _hookDelegate, _handle, 0);
}
}
System.Windows.Forms.Application.Run();
User32.UnhookWindowsHookEx(_hookID);
}
catch (Exception ex)
{
Utilities.OnError(Utilities.GetCurrentMethod(), ex);
}
}