我要创建一个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.如果我必须将事件处理程序(播放音频)放在后台任务中,我该如何触发该任务?
对不起,如果我的问题没有用。
答案 0 :(得分:0)
你可能需要收听windows api,而不只是当前打开的窗口,因为它没有激活,所以没有收到按键事件:
Windows API: handling keypress event of external window application through C#