【发布时间】:2016-12-13 04:08:09
【问题描述】:
在 Windows 10 中按 +G 会导致 Xbox 游戏栏打开 - 它覆盖当前应用程序,无论它是否是游戏(尽管Windows 维护自己的游戏数据库,以提示是否在进程启动时自动显示该栏)
我想知道这怎么可能 - 我的计算机上没有运行任何与 Windows 10 Xbox 应用程序相关的进程。
Process Explorer 显示当按下 WinKey+G 时,会发生以下情况:
-
svchost.exe实例(托管BrokerInfrastructure、DcomLaunch、LSM、PlugPlayPower和SystemEventsBroker服务)调用"%windir%\System32\bcastdvr.exe" -ServerName:Windows.Media.Capture.Internal.BroadcastDVRServer -
bcastdvr.exe然后调用"C:\Windows\System32\GamePanel.exe {hexString} /eventType=8(其中{hexString}是 16 位十六进制数字(8 字节)字符串,可能是窗口句柄或等效项)。 -
GamePanel.exe然后创建窗口。
但覆盖窗口本身很特殊 - 它似乎不是普通的hWnd - 例如,我观察到我的鼠标光标失去了阴影和“声纳脉冲”效果(当我点击Ctrl 键显示我的光标位置)保持在我打开游戏栏时鼠标光标所在的位置。我还注意到游戏栏的动画非常流畅和流畅——与典型的 Win32 窗口完全不同。是否使用 XAML UI 框架?如果是这样,它是如何在 Windows UWP 沙盒之外进行的?
奇怪的是,游戏栏也能够瞄准提升的窗口。
我尝试使用 Spy++ 检查窗口,但失败了,因为它会在另一个窗口获得焦点时立即消失,但是当我选择开始录制窗口时(因此您会获得始终保留在屏幕上的录制覆盖) ,一旦我使用 Spy++ 的“查找窗口”工具,覆盖就消失了。 GameBar Recording Overlay 是如何做到这一点的?
【问题讨论】:
标签: windows-10