gpt4 book ai didi

c++ - WASAPI 阻止 Windows 自动挂起?

转载 作者:太空宇宙 更新时间:2023-11-04 15:29:00 25 4
gpt4 key购买 nike

第一次发帖,温柔一点;-)

我正在编写一个作为 Windows 服务运行的音频应用程序(使用 C++),使用 WASAPI 从插孔中的线路中获取样本,并对其进行一些处理。

我注意到,当我的应用正在“录制”时,Windows 不会自动挂起或休眠。

我已经注册了电源事件通知,如果我自己按下暂停按钮,我的服务将获得适当的电源事件并正确处理它们。如果我让系统自行挂起,则永远不会收到电源事件。

如果我删除引用 WASAPI 的代码位,则在手动和自动挂起时都会正常接收电源事件。所以似乎使用 WASAPI 会告诉 Windows 忽略自动挂起计时器。

谁能帮助解释这种行为,我能做些什么来阻止它吗?我不希望我的应用程序成为行为不端并阻止系统挂起的应用程序之一。

最佳答案

不幸的是,没有机制可以做你想做的事——打开音频流会阻止电源状态转换,就像通过网络打开文件和其他许多事情一样。

这是音频驱动程序 (portcls.sys) 而非 WASAPI 的功能,也不是 Vista 的新行为 - 我相信 XP 和 Win2K 具有类似的行为(尽管电源状态转换在 Vista 上比它们更可靠在 XP 和 Win2K 上,所以用户往往更依赖它们。

在 Windows 7 上,您可以使用“powercfg -requests”来查找系统是否有任何部分阻止机器进入休眠状态。可以找到更多信息 here

关于c++ - WASAPI 阻止 Windows 自动挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com