private static void SubscribeInner(KeyboardListener instance) {
if (Subscribed.Contains(instance)) return;
Subscribed.Add(instance);
if (_hookHandle == 0) {
// ReSharper disable once RedundantDelegateCreation
_hookProc = new User32.HookProc(KeyboardHookProc);
// var id = Kernel32.LoadLibrary("User32");
var id = Kernel32.GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);
var result = User32.SetWindowsHookEx(User32.WH_KEYBOARD_LL, _hookProc, id, 0);
_hookHandle = result;
AcToolsLogging.Write("Subscribed: " + result);
if (result == 0) throw new Win32Exception(Marshal.GetLastWin32Error());
}
}