static extern int CallNextHookEx(IntPtr hhk, int code, int wParam, ref kbInfo lParam);
public int HookDelegate(int nCode, int wParam, ref kbInfo lParam) { if (nCode == 0) { kbInfo ki = (kbInfo)lParam; if (wParam == WM_KEYDOWN) if (IsDown(VK_CONTROL) && ki.vkCode == vkKey(ShowHotkey)) { GetSelectedText(); } else if (ki.vkCode == vkKey(ShowHotkey)) { if (InTutorialMode && RTBIndex == TUTORIAL_PAGE_NO - 1) { //showhide(); ShowAndHide(); DestroyTutorialMode(); } else { ShowHide(); if (OptionsShowing) ShowHideOptions(); } } else if (ki.vkCode == vkKey(ExitHotkey)) { CmdInvoker.CleanUp(); Application.Current.Shutdown(); } else if (IsDown(VK_SHIFT) && ki.vkCode == vkKey(Key.F11)) { if (WindowShowing) ShowHideOptions(); } else if (ki.vkCode == vkKey(Key.F1)) { if (WindowShowing && !InTutorialMode) { ShowAndHide(); DestroyMainMode(); InTutorialMode = true; } } else if (WindowShowing && !StolenFocus) { StealFocus(); StolenFocus = true; } } return CallNextHookEx(IntPtr.Zero, nCode, wParam, ref lParam); }