求教!“免打扰”的原理
如题!一些软件有“免打扰”功能,比如很多杀毒软件就有这样的功能,“免打扰”能检测出当前是否正在运行全屏游戏,或者正在播放电影,或者还有其它一些状态……当发现这些状态时,软件就会关闭一些功能如:信息提示,后台作业等。
请问有谁知道这个“免打扰”的原理,怎样去检测上面说到的状态?
[解决办法]
检查窗口的尺寸是否为全屏,并且用GetWindowLong判断窗口是否有标题栏等区域。
或者hook DirectX。
[解决办法]
检查前台作业的窗口,是否最大化和全屏,具体需要测试,也不是100%准确
[解决办法]
应该是用了钩子吧。hook一些弹出的消息,或者相关的窗口。
[解决办法]
再补上:检查窗口的尺寸是否为全屏,并且用GetWindowLong函数判断窗口是否有标题栏等区域。
或者找找有什么函数能判断窗口是否全屏化(不是最大化)。
现在有些游戏是窗口模式,播放器也有窗口模式、最大化模式、全屏模式,如果窗口模式的程序程序也免打扰,那只能用DX判断了。
[解决办法]
我觉得比较靠谱的是检查CPU占用率
当CPU占用率达到一定程度的时候,且系统无异常,就可以进入到免打扰状态