【问题标题】:How is the Windows 10 Game-Bar implemented?Windows 10 Game-Bar 是如何实现的?
【发布时间】:2016-12-13 04:08:09
【问题描述】:

在 Windows 10 中按 +G 会导致 Xbox 游戏栏打开 - 它覆盖当前应用程序,无论它是否是游戏(尽管Windows 维护自己的游戏数据库,以提示是否在进程启动时自动显示该栏)

我想知道这怎么可能 - 我的计算机上没有运行任何与 Windows 10 Xbox 应用程序相关的进程。

Process Explorer 显示当按下 WinKey+G 时,会发生以下情况:

  1. svchost.exe 实例(托管BrokerInfrastructureDcomLaunchLSMPlugPlayPowerSystemEventsBroker 服务)调用"%windir%\System32\bcastdvr.exe" -ServerName:Windows.Media.Capture.Internal.BroadcastDVRServer
  2. bcastdvr.exe 然后调用 "C:\Windows\System32\GamePanel.exe {hexString} /eventType=8(其中 {hexString} 是 16 位十六进制数字(8 字节)字符串,可能是窗口句柄或等效项)。
  3. GamePanel.exe 然后创建窗口。

但覆盖窗口本身很特殊 - 它似乎不是普通的hWnd - 例如,我观察到我的鼠标光标失去了阴影和“声纳脉冲”效果(当我点击Ctrl 键显示我的光标位置)保持在我打开游戏栏时鼠标光标所在的位置。我还注意到游戏栏的动画非常流畅和流畅——与典型的 Win32 窗口完全不同。是否使用 XAML UI 框架?如果是这样,它是如何在 Windows UWP 沙盒之外进行的?

奇怪的是,游戏栏也能够瞄准提升的窗口。

我尝试使用 Spy++ 检查窗口,但失败了,因为它会在另一个窗口获得焦点时立即消失,但是当我选择开始录制窗口时(因此您会获得始终保留在屏幕上的录制覆盖) ,一旦我使用 Spy++ 的“查找窗口”工具,覆盖就消失了。 GameBar Recording Overlay 是如何做到这一点的?

【问题讨论】:

    标签: windows-10


    【解决方案1】:

    原来,经过一番研究,我发现游戏栏是一个位于C:\Program Files\WindowsApps\Microsoft.XboxGamingOverlay_5.120.4062.0_x64__8wekyb3d8bbwe 的.exe 文件,它是用Win-G 快捷方式(可以更改)打开的。从我所见,打开后,您将看不到任务管理器的应用程序页面中的游戏栏,而是与运行时代理分组的后台进程页面,这让我相信它是一个程序默认情况下在启动时加载并内置到设备操作系统的内存中。在后台进程部分展开游戏栏部分,然后右键单击“Xbox 游戏栏”,然后单击属性,您可以找到游戏栏的属性。我认为过渡到游戏栏很顺利,因为它可能是内置在 RAM 中的应用程序,默认情况下作为后台进程卸载。 SYSTEM 帐户还可以完全控制该文件,这进一步支持 Xbox Game Bar 是固定在 Windows ram 上的功能。

    【讨论】:

    • "并内置到设备操作系统的内存中。" - 这不是计算机的工作方式。
    • 对不起,我的意思是操作系统会将它固定到设备的 RAM 上
    猜你喜欢
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2011-11-24
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多