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

时间:2019-04-02 14:16:43

标签: c# uwp notifications windows-10

在我到过的所有地方,几乎都有一些未解决的问题,所以我想我应该在清单中加上我的内容。

我希望通过编程方式在Win 10中切换“聚焦辅助”模式,但到目前为止,在官方和非官方渠道上都无法找到有关此目的的大量文档。

如果我无法以编程方式切换焦点辅助,则需要从本质上模仿相同的行为含义,即我需要拦截并抑制传入的通知,直到将其关闭,然后显示在此期间被静音的通知。

目前看来,唯一可用的路径是使用反向WNF信息编写一些c ++,然后祈祷它不会在更新中中断。在我掉进那个兔子洞之前,我想过要看是否有人这样做,或者可以指出我未曾考虑的资源。

通知侦听器很棒,可以让我访问所述通知以满足我的第二个要求,但是由于它们与vs并行运行,因此不允许我在它们进入时将其静音,因为它会中断通知流程。

对于以后问这个问题的人,我发现这些帮助:

https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/notification-listener

Is there a way to detect changes in Focus Assist (formerly Quiet Hours) in Windows 10 from a Win32 App

https://blog.quarkslab.com/playing-with-the-windows-notification-facility-wnf.html

http://redplait.blogspot.com/2018/07/wnf-ids-from-perfntcdll-adk-version.html

2 个答案:

答案 0 :(得分:3)

您可以使用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将激活“游戏模式”。 如果两者都关闭,该命令将无效。

答案 1 :(得分:1)

  

我正在寻找以编程方式在Win 10中切换“对焦辅助”模式的方法,但到目前为止没有成功

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