private void OnMessageIntercepted(LowLevelMessage lowLevelMessage, ref bool handled) { LowLevelKeyboardMessage keyboardMessage = lowLevelMessage as LowLevelKeyboardMessage; if (handled || keyboardMessage == null) { return; } if (!IsTabKeyDown(keyboardMessage)) { return; } if (!IsKeyDown(_altKey)) { return; } bool shiftKeyDown = IsKeyDown(_shiftKey); bool ctrlKeyDown = IsKeyDown(_ctrlKey); AltTabHookEventArgs eventArgs = OnPressed(shiftKeyDown, ctrlKeyDown); handled = eventArgs.Handled; }
private void lowLevelKeyboardProcHook(LowLevelKeyboardMessage message, KeyboardLowLevelHookStruct info) { switch (message) { case LowLevelKeyboardMessage.WM_KEYUP: case LowLevelKeyboardMessage.WM_SYSKEYUP: thread_KeyUp((Keys)info.vkCode); break; case LowLevelKeyboardMessage.WM_KEYDOWN: case LowLevelKeyboardMessage.WM_SYSKEYDOWN: thread_KeyDown((Keys)info.vkCode); break; default: break; } }
private void RemoveEvent(Keys keys) { if (llhook) { for (int i = llmacro.Count - 1; i >= 0; i--) { LowLevelKeyboardMessage llm = llmacro[i] as LowLevelKeyboardMessage; if (llm != null && llm.VirtualKeyCode == (int)keys) { llmacro.RemoveAt(i); return; } } MessageBox.Show("Event not found!"); } else { // not needed } }
private static bool IsAltTabKeyCombination(LowLevelKeyboardMessage keyboardMessage) { return(keyboardMessage.VirtualKeyCode == (int)Keys.Tab && keyboardMessage.Flags == AltDown); }
private bool IsTabKeyDown(LowLevelKeyboardMessage keyboardMessage) { return(keyboardMessage.VirtualKeyCode == (int)Keys.Tab && (keyboardMessage.Message == WM_KEYDOWN || keyboardMessage.Message == WM_SYSKEYDOWN)); }