我将创建一个UWP应用程序,为键盘keyUp / keyDown事件提供声音效果 .
我在 MainPage.xaml.cs
写了下面的代码 . 当我的应用程序在前台时它按预期工作但在最小化/在后台时失败 .
Window.Current.CoreWindow.KeyDown +=
(window, e) =>
{
MyMediaElement.Source = new Uri(this.BaseUri, currentSoundEffect.EnterKeyAudio;);
};
我知道可以在我的应用程序中注册进程内/进程外后台任务 . 但是根据此文档https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/support-your-app-with-background-tasks,后台任务必须被触发,并且只能由 System event triggers
, Maintenance trigger
和 DeviceUseTrigger
触发 .
我的问题是1.当我的应用程序不在前台时,我怎么能听键盘事件? 2.如果我必须将事件处理程序(播放音频)放在后台任务中,我该如何触发该任务?
对不起,如果我的问题没有意义 .
1 回答
你可能需要听一下windows api,而不只是当前打开的窗口,因为它没有激活,所以没有收到按键事件:
Windows API: handling keypress event of external window application through C#