我需要延迟现代待机模式,直到我的应用程序执行一些操作。目前我正在使用EvtSubscribe捕获现代待机事件,并且在回调函数中,我的应用程序执行一些操作。但有时候在现代待机退出期间调用事件回调。我怀疑操作系统暂停应用程序活动,并在现代待机退出后恢复。是否有任何解决方案可用于延迟操作系统进入现代待机?
LPCWSTR pwsPath = L"System";
LPCWSTR pwsQuery = L"(*[System[(EventID=\"####\")]])"; // #### will be replaced with actual event in the original code
_ghCSEventsSubscription = EvtSubscribe(NULL, NULL, pwsPath, pwsQuery, NULL, NULL,
(EVT_SUBSCRIBE_CALLBACK)CSEventsSubscriptionCallback, EvtSubscribeToFutureEvents);
1条答案
按热度按时间woobm2wo1#
我不确定这是否适合您的用例,但是我已经成功地使用
SetThreadExecutionState()
(more info)来保持系统活动并登录,而其他任务在后台运行,这是不可能的(有问题的系统具有防止禁用睡眠/注销模式的安全性)请让我知道这是否对您有帮助,或者您的问题是否与我的理解不同。