为了账号安全,请及时绑定邮箱和手机立即绑定

以编程方式在 Win 10 中切换焦点辅助模式

以编程方式在 Win 10 中切换焦点辅助模式

C#
泛舟湖上清波郎朗 2022-11-22 15:38:08
在我看过的几乎所有地方都有一些未解决的问题,所以我想我应该把我的问题加到统计表中。我希望以编程方式在 Win 10 中切换 Focus Assist 模式,但迄今为止在官方和非官方渠道中都没有找到很多关于此的文档。如果我无法以编程方式切换焦点辅助,我将需要从本质上模拟相同的行为含义,即我将需要拦截和压制传入的通知,直到它被关闭,然后显示在此期间被静音的通知。似乎现在唯一可用的方法是使用反向 WNF 信息编写一些 c++,然后祈祷它不会在更新中中断。在我进入那个兔子洞之前,我想我会看看是否有人这样做过,或者也许可以给我指出一个我没有考虑过的资源。通知侦听器很棒,可以让我访问所述通知以满足我的次要要求,但它不允许我在它们进入时将它们静音,因为它与 vs 并行运行会中断通知流。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

我希望以编程方式在 Win 10 中切换 Focus Assist 模式,但迄今为止没有成功

目前,UWP 不提供这样的 api 以Focus Assist编程方式切换模式。如果您确实需要此功能,请随时在UserVoice上请求此功能。


查看完整回答
反对 回复 2022-11-22
?
喵喔喔

TA贡献1735条经验 获得超5个赞

您可以使用 WNF 机制切换模式。

生成文件“0”= 00 00 00 00(十六进制)和文件“1”= 02 00 00 00(十六进制)的二进制内容

例如,在 git bash 中

echo -n -e "\x00\x00\x00\x00" > 0
echo -n -e "\x02\x00\x00\x00" > 1

克隆存储库:https ://github.com/ionescu007/wnfun

pip install Pywin32
pip install hexdump

开启优先模式

python WnfDump.py -w WNF_SHEL_QUIET_MOMENT_SHELL_MODE_CHANGED 1

关闭焦点辅助

python WnfDump.py -w WNF_SHEL_QUIET_MOMENT_SHELL_MODE_CHANGED 0

如果您找到打开“仅警报”模式的方法,请告诉我。

您也可以使用相同的技术 C++。

编辑:实际上,该命令激活为“全屏模式”设置的模式,文件内容 01 00 00 00 将激活“游戏模式”。如果两者都关闭,则该命令将无效。


查看完整回答
反对 回复 2022-11-22
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

正如 Pavel Henrykhsen 的回答所说,有一种程序化的方式,尽管没有记录且不受支持。这是一个实现,尽管是用 Rust 编写的

相关功能是ZwUpdateWnfStateData来自ntdll.dll. 在这种情况下,相关论点是

  1. 我在https://github.com/googleprojectzero/sandbox-attacksurface-analysis-tools/blob/80d7fcc8df9c3160c814c60f5121ae46c560a1b5/NtApiDotNet/NtWnfWellKnownNames.cs#L865找到的状态 ID

  2. 具有值的缓冲区[0x02, 0x00, 0x00, 0x00]

  3. 缓冲区的长度

之后的所有参数都可以安全地忽略。

// Pseudo-code

ZwUpdateWnfStateData(

            0xd83063ea3bf5075UL,

            new byte[] {0x02, 0x00, 0x00, 0x00},

            4,

            0,

            0,

            0,

            0,

        );

这似乎确实依赖于在焦点模式设置中打开的“当我在全屏模式下使用应用程序时”设置。


此外,如果有人试图使用它来启用焦点模式,我建议首先禁用焦点模式(new byte[] {0x00, 0x00, 0x00, 0x00}而不是通过)。然后,几毫秒后,可以安全地启用聚焦模式。


查看完整回答
反对 回复 2022-11-22
  • 3 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信