禁用并记录 windows 个快捷方式

Disable and record windows shortcuts

我正在尝试记录用户的组合键。

下面的代码可以很好地处理 ctr+A 之类的东西,它甚至可以记录 win-key,尽管它并没有阻止它的效果。

但是如果我想录制 ctr+alt+delalt+tabalt+F4 之类的东西,它根本不会录制!

CoreWindow.GetForCurrentThread().Dispatcher.AcceleratorKeyActivated += handleKey;

private void handleKey(CoreDispatcher sender, AcceleratorKeyEventArgs args)
        {
            bool isKeyDown = args.EventType.HasFlag(CoreAcceleratorKeyEventType.KeyDown);
            bool isKeyUp   = args.EventType.HasFlag(CoreAcceleratorKeyEventType.KeyUp);
            var isKeyReleaseOrWasNotDownAlready = args.KeyStatus.IsKeyReleased || !args.KeyStatus.WasKeyDown;

            if ((isKeyDown || isKeyUp) && isKeyReleaseOrWasNotDownAlready)
            {
                args.Handled = true;
                triggerKeyEvent(args);//sends event to a recorder
            }
        }

有没有办法停止热键传播并记录下来?

我发现使用 KeyboardDeliveryInterceptor 适用于除 ctr+alt+delwin+L 之外的所有内容,但无论如何都无法阻止这些组合。

记得添加<rescap:Capability Name="inputForegroundObservation"/>限制能力。