Aru*_*run 2 c++ windows winapi
我需要延迟现代待机模式,直到我的应用程序执行某些操作。目前,我正在使用 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);
Run Code Online (Sandbox Code Playgroud)
我不确定这是否适合您的用例,但是我已经成功地使用SetThreadExecutionState()
(更多信息)来保持系统活动并登录,而其他任务在后台运行,而其他任务则不能(有问题的系统具有防止禁用的安全性)睡眠/注销模式)
#include <iostream>
#include <Windows.h>
int main()
{
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED);
system("pause");
return 1;
}
Run Code Online (Sandbox Code Playgroud)
如果这对您有帮助,或者您的问题与我的理解不同,请告诉我。
归档时间: |
|
查看次数: |
276 次 |
最近记录: |