Документация для WM_POWERBROADCAST
гласит:
Чтобы система не
переход в состояние с низким энергопотреблением в
Windows Vista, приложение должно
вызовите SetThreadExecutionState, чтобы сообщить
система, которую он использует.
Вся эта область Windows кардинально изменилась с XP на Vista, поэтому любые решения, основанные на WM_POWERBROADCAST
, не будут работать на современных Windows.
Итак, рекомендуемое решение - позвонить SetThreadExecutionState()
. Вы можете подделать сообщения мыши, используя, например, SendInput()
или еще какой-нибудь нативный эквивалент Java, но я бы, вероятно, выбрал SetThreadExecutionState()
.