internal bool RegisterHook(Hook _detour, MethodBase from, MethodBase to, object target) { Assembly owner = GetHookOwner(); if (owner == null) { return(true); // continue with default detour creation, we just don't track it } OnHook?.Invoke(owner, from, to, target); TrackDetour(owner, _detour); return(true); }
private void HandleKeyDownHookEvent(MouseHookEventArgs args) { OnHook?.Invoke(args); lock (downButtons) { // Save button to recognize successfull key presses (down and up) bool added = downButtons.Add(args.Button); if (added) { OnHold?.Invoke(args); } } }
private void HandleKeyReleasedHookEvent(MouseHookEventArgs args) { OnHook?.Invoke(args); lock (downButtons) { bool removed = downButtons.Remove(args.Button); OnRelease?.Invoke(args); if (removed) { OnClick?.Invoke(args); } } }
private void HandleKeyReleasedHookEvent(KeyboardHookEventArgs args) { OnHook?.Invoke(args); lock (downKeys) { bool removed = downKeys.Remove(args.KeyCode); OnRelease?.Invoke(args); if (removed) { OnPress?.Invoke(args); } } }
private void HandleKeyDownHookEvent(KeyboardHookEventArgs args) { OnHook?.Invoke(args); lock (downKeys) { // Save button to prevent multiple events and also to recognize successfull key presses (down and up) bool added = downKeys.Add(args.KeyCode); if (added) { OnHold?.Invoke(args); // First time } else { if (!settings.HookHoldEventOnce) { OnHold?.Invoke(args); } } } }