如何在 WinUI UWP 中以编程方式调用键盘加速器?
How can I invoke keyboard accelerators programmatically in WinUI UWP?
有没有办法在 WinUI UWP 中以编程方式调用 Win + V 等默认 Windows 快捷方式?
一些快捷方式,如 Win + V,据我所知没有任何 API 调用。因此,我想通过以编程方式触发它们来调用它们。有解决办法吗?
根据@Zer0 的建议,我使用了键盘输入注入。这是工作。但是,注入后,物理键盘开始出现故障。我在键盘上按下的键映射到不同的键,Windows 开始打开 随机应用程序 。即使在关闭我的应用程序后,这个问题仍然存在 10 秒。 10 秒后,此问题消失。为什么会这样?
顺便说一句,这是我的代码:
var V = new InjectedInputKeyboardInfo();
V.KeyOptions = InjectedInputKeyOptions.None;
V.VirtualKey = (ushort)VirtualKey.V;
var Win = new InjectedInputKeyboardInfo();
Win.KeyOptions = InjectedInputKeyOptions.None;
Win.VirtualKey = (ushort)VirtualKey.LeftWindows;
injector.InjectKeyboardInput(new[] { Win,V });
您可能需要在注入 Win + V[ 后释放 Windows 键=19=]成功。
你可以试试这个:
InputInjector inputInjector = InputInjector.TryCreate();
InjectedInputKeyboardInfo infoV = new InjectedInputKeyboardInfo();
infoV.KeyOptions = InjectedInputKeyOptions.None;
infoV.VirtualKey = (ushort)VirtualKey.V;
// Windows key is an extended key.
InjectedInputKeyboardInfo infoW = new InjectedInputKeyboardInfo();
infoW.KeyOptions = InjectedInputKeyOptions.ExtendedKey;
infoW.VirtualKey = (ushort)VirtualKey.LeftWindows;
inputInjector.InjectKeyboardInput(new[] { infoW, infoV });
// Release the key
infoW.KeyOptions = InjectedInputKeyOptions.KeyUp;
infoW.VirtualKey = (ushort)VirtualKey.LeftWindows;
inputInjector.InjectKeyboardInput(new[] { infoW });
有没有办法在 WinUI UWP 中以编程方式调用 Win + V 等默认 Windows 快捷方式?
一些快捷方式,如 Win + V,据我所知没有任何 API 调用。因此,我想通过以编程方式触发它们来调用它们。有解决办法吗?
根据@Zer0 的建议,我使用了键盘输入注入。这是工作。但是,注入后,物理键盘开始出现故障。我在键盘上按下的键映射到不同的键,Windows 开始打开 随机应用程序 。即使在关闭我的应用程序后,这个问题仍然存在 10 秒。 10 秒后,此问题消失。为什么会这样?
顺便说一句,这是我的代码:
var V = new InjectedInputKeyboardInfo();
V.KeyOptions = InjectedInputKeyOptions.None;
V.VirtualKey = (ushort)VirtualKey.V;
var Win = new InjectedInputKeyboardInfo();
Win.KeyOptions = InjectedInputKeyOptions.None;
Win.VirtualKey = (ushort)VirtualKey.LeftWindows;
injector.InjectKeyboardInput(new[] { Win,V });
您可能需要在注入 Win + V[ 后释放 Windows 键=19=]成功。
你可以试试这个:
InputInjector inputInjector = InputInjector.TryCreate();
InjectedInputKeyboardInfo infoV = new InjectedInputKeyboardInfo();
infoV.KeyOptions = InjectedInputKeyOptions.None;
infoV.VirtualKey = (ushort)VirtualKey.V;
// Windows key is an extended key.
InjectedInputKeyboardInfo infoW = new InjectedInputKeyboardInfo();
infoW.KeyOptions = InjectedInputKeyOptions.ExtendedKey;
infoW.VirtualKey = (ushort)VirtualKey.LeftWindows;
inputInjector.InjectKeyboardInput(new[] { infoW, infoV });
// Release the key
infoW.KeyOptions = InjectedInputKeyOptions.KeyUp;
infoW.VirtualKey = (ushort)VirtualKey.LeftWindows;
inputInjector.InjectKeyboardInput(new[] { infoW });