禁用蒸汽覆盖

Posted

技术标签:

【中文标题】禁用蒸汽覆盖【英文标题】:To disable steam overlay 【发布时间】:2019-02-20 20:08:13 【问题描述】:

我有以下游戏设置:

    launcher.exe - 在 Windows 上的 Steam 下启动,并为用户提供一些设置 UI。 然后launcher.exe 启动实际的game.exe。

问题是 launcher.exe 正在使用硬件加速 UI - 使用 Direct2D/DirectX。

此页面https://partner.steamgames.com/doc/features/overlay 声明:

您的游戏不需要为叠加层做任何特别的事情 工作,它会自动挂接到任何从 Steam 启动的游戏!

但在我的情况下会产生问题 - 叠加层是在错误的窗口上创建的。所以launcher.exe(使用DirectX)有覆盖,但由game.exe(真正的游戏,使用DirectX和/或OpenGL)创建的窗口没有。

问题是:如何修改 launcher.exe 窗口的代码以防止“自动”在其上创建 Steam 覆盖?

更新,来自 Valve TS 的回应:

抱歉,没有代码可以选择性地启用或禁用 启动器和游戏之间的叠加!

唯一的“选项”是在launcher.exe 中禁用DirectX 绘图。在这种情况下,他们注入的 DLL 不会创建那个东西。但这实际上意味着在 Steam 下没有 GPU 加速的 UI 绘图......那种“640kb 对每个人都足够了”的设计类型。

理想情况下,Steam 应该向窗口发送一些自定义消息,询问窗口希望如何以及在何处渲染叠加层。但显然没有这样的事情,或者是吗?

就上下文而言,启动器如下所示:

【问题讨论】:

您最好的选择可能是在 SteamWorks 开发者论坛/社区中提问。 我没有帐户 - 我想它需要一些订阅费。 你只需要作为游戏的开发者,AFAIK。您在 Steam 上有 SteamWorks 徽章吗?如果没有,并且您的团队中有其他成员这样做,那么我认为他们需要添加您,但我不是开发人员,所以 IDK 肯定 - 只是按照我在这里读到的内容。如果您独自开发并且 Valve 仍然有代表帮助人们注册和设置,他们应该能够帮助您。如果没有代表,您可能需要联系客户支持,如果他们不能亲自拨动开关,您可能需要联系他们开始整理。 @MarkDiedericks 实际上它适用于两者 - 我们只是不希望它出现在启动器窗口中 - 它在那里根本没有意义 - 错误的上下文等。 感谢您回复@c-smile(并祝贺您的​​工作)。似乎 Steam 正在使用 GameOverlayUI.exe 制作叠加层,它接收一个 pid 作为参数,并通过uses Hooks 进行自我注入。您可以使用Spy++ 和WinDbg 进行深入研究。注意到它并再次谷歌搜索后,我找到了this post! 【参考方案1】:

停止 Steam 覆盖的最佳方法:

第 1 步:打开 Steam 应用程序,然后从您的游戏库中单击一次选择要禁用屏幕覆盖的游戏。然后右击打开选项菜单,选择“属性”。

第 2 步:当您单击属性选项时,将打开一个新选项卡。在新打开的窗口的常规选项卡中,确保取消选中“在游戏中启用 Steam 覆盖”,然后单击“确定”保存设置。

更多:How do I turn off steam overlay?

【讨论】:

问题不在于完全禁用覆盖。但是关于在适当的窗口上显示它。并以编程方式/声明方式进行。

以上是关于禁用蒸汽覆盖的主要内容,如果未能解决你的问题,请参考以下文章

覆盖或禁用设置菜单

如何在 IntelliJ 中禁用装订线“覆盖”图标?

如何覆盖Drupal 7上的“禁用JavaScript”页面

如何禁用/覆盖“您要离开此站点吗?”警报?

如何禁用/删除/覆盖 CDN 的 css 属性

使用 Javascript 覆盖或禁用元刷新标签