通用Windows应用程序中的全局热键 - c#

因此,我创建了一个UWP App,它可以记录多条音频行,并将记录保存到MP3文件中以进行游戏中的多行记录,以后我可以将其单独编辑(游戏音频,麦克风,游戏通讯,语音通讯)作为NVidia ShadowPlay / Share。目前尚不支持。我通过VAC实现了这种多线设置。

我有使用常规Windows WPF C#编写的此工具的版本,并且有一个系统范围内的热键Ctrl+Alt+R,可以开始/停止录制,因此当我在全屏游戏中时,可以在不退出全屏的情况下开始/停止录制模式(切换窗口焦点)。

是否可以在UWP App中实现触发某些应用程序内事件的全局(系统范围内的,应用程序窗口未聚焦)热键?我知道其他平台不支持该功能。但是我只需要它在Windows 10桌面上运行,并且对HotKey的支持是必需的。还是我可以通过其他任何方式实现UWP Apps的目标?

目标:系统范围内的组合键,可在UWP应用事件中触发,而无需切换窗口焦点和全屏游戏。

参考方案

目前尚无法彻底解决此任务。
您面临UWP的两个限制,只能部分解决:

生命周期:UWP应用在未集中精力时会处于暂停状态。他们只是“阻塞”以消耗更少的资源(和电池)。对于移动设备来说,这是一个很棒的功能,但对您的项目来说却是个坏消息。您可以通过请求“ ExtendedExecutionSession”来解决此问题,如果“附加到墙头”,这将确保您的应用在失去焦点时永远不会睡着。
检测输入时没有焦点。在MSDN上明确指出UWP不支持键盘HOOKS(这是指SetWindowsHookEx)。他们重新发明了“ GetAsyncKeyState”,现在它仅在Windows聚焦时才起作用。实际上,您可以在CoreWindow.GetAsyncKeyState()下找到它。
如果只需要使用F键作为热键,您仍然可以做一些事情,例如“在最小化应用程序以激活功能时按F2键”。
使用Stefan Wick example。他解决了部分问题。
相反,如果您需要听很多键(或鼠标事件),则没有办法。你现在不能。

好奇心

UWP具有受限制的功能,其中之一称为“ InputObservation”。
目前,该文件尚未记录,也无法实施(除非您是Microsoft的精选合作伙伴),但它应允许应用不受任何限制且不受最终目的地的限制,访问系统输入(键盘/鼠标..)。
我认为此功能是系统范围内输入检测的关键。
我找不到实现它的方法。

亲切的问候

Windows 10 Universal App C#-运行Javascript - javascript

我有一个C#Windows 10应用程序,我需要能够运行javascript。在.net中,我将使用WebView类来提供此功能,但在Native Windows 10 Universal App中似乎不可用。我将如何做到这一点? 参考方案 您可以继续使用Webview,如下所示:<Grid Background="{ThemeResourc…

Mamp无法启动apache(Windows 10) - php

我本周已经在Windows 10计算机上安装了MAMP Pro,并且直到今天都工作正常。我重新启动计算机,然后立即启动了MAMP Pro-这导致MySQL服务器启动,但Apache无法启动。然后,我重新启动了MAMP,并且没有服务器在运行,我检查了MAMP端口上是否还有其他服务正在运行,但没有。我还更改了MAMP中的端口,但是它也不起作用。为什么会这样呢?这…

如何在Universal Windows App中使用BackgroundMediaPlayer播放内部声音 - c#

我在C#中创建一个计时器。计时器结束后,用户将收到通知。如果我的应用程序被暂停,我会使用ToastNotificationManager安排通知,并在Toast XML中将声音设置为内部声音,例如:<audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop=…

用于本地开发服务器重定向到登录页面的Google App Engine远程api - java

尝试使用appcfg.py将数据上传到本地开发服务器时,出现302重定向错误。如果我使用浏览器访问相关页面(_ah / remote_api),则会得到一个登录页面,test @ example.com中的预填写有效,但cmd行中没有提示输入。我正在使用GAE的Java变体,并且之前使用过appcfg.py的upload_data命令,我认为这里的区别在于,…

使用nodejs中的前端和python中的后端服务器运行Google App Engine的一个实例 - python

我对GCP和GAE,nodejs和python及网络(我知道)感到不知所措。[+]我有:基本上,我有一些nodejs代码,它们接受一些输入,然后应该将该输入发送到一些python代码,它将对它做更多的工作。我的第一个想法是通过GAE部署nodejs代码,然后将python代码托管在python服务器中,然后从nodejs前端向python服务器后端发出发布请…