在我所看过的几乎所有的地方,都有一些问题没有得到回答,所以我想我应该把我的问题加到统计中去。
我期待切换焦点协助模式,在Win 10编程,到目前为止,一直未能在官方和非官方渠道找到大量的文档。
如果我无法以编程方式切换焦点帮助,我将需要从本质上模仿相同的行为--也就是说,我需要拦截和压制传入的通知,直到它被关闭,然后显示在此期间被静默的通知。
现在唯一可用的方法是使用反向的WNF信息编写一些c++,然后祈祷它不会在更新中中断。在我进入兔子洞之前,我想我应该看看是否有人做过这件事,或者也许可以让我找到一个我还没有考虑过的资源。
通知侦听器很棒,它允许我访问上述通知以满足我的次要需求,但它不允许我在它们进入时使它们保持沉默,因为它与vs并行运行,中断了通知的流程。
对于将来问这个问题的人,我发现这些都很有帮助:
发布于 2019-04-03 08:20:22
我希望在Win 10中以编程方式切换焦点辅助模式,但到目前为止都没有成功。
目前,UWP没有提供这样的api来以编程方式切换Focus Assist模式。如果你真的想要这个功能,请在UserVoice上自由的要求这个特性。
发布于 2020-06-26 20:45:33
您可以使用WNF机制切换模式。
生成文件"0“= 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,将激活“游戏模式”。如果两者都被关闭,则该命令将没有任何效果。
发布于 2021-10-09 13:11:32
正如Pavel的回答所说,有一种编程的方法,尽管没有文件记载,也没有得到支持。下面是一个实现,尽管是用Rust编写的。
相关的函数是来自ZwUpdateWnfStateData的ntdll.dll。在这种情况下,相关的参数是
[0x02, 0x00, 0x00, 0x00]值的缓冲区之后的所有参数都可以安全地忽略。
// Pseudo-code
ZwUpdateWnfStateData(
0xd83063ea3bf5075UL,
new byte[] {0x02, 0x00, 0x00, 0x00},
4,
0,
0,
0,
0,
);这似乎依赖于在焦点模式设置中打开的“当我使用全屏应用程序时”设置。
另外,如果有人试图使用它来启用焦点模式,我建议首先禁用焦点模式(通过new byte[] {0x00, 0x00, 0x00, 0x00}代替)。然后,在几毫秒后,您可以安全地启用焦点模式。
https://stackoverflow.com/questions/55477041
复制相似问题