Мое приложение использует Win32 SetSuspendState()
API для запуска системы в режиме ожидания или гибернации, когда оно завершило выполнение длительной задачи.
API принимает параметр «ForceCritical», который определяет, будет ли система немедленно приостанавливаться или будет ли она сначала транслировать PBT_APMQUERYSUSPEND
, чтобы другие приложения могли отменить приостановку. Мое приложение использует это для приятного воспроизведения с другими приложениями, такими как Media Player, поэтому оно не приостанавливается, если вы слушаете музыку или что-то еще.
По какой-то причине, начиная с Vista, MS изменила положение, поэтому этот параметр игнорируется , поэтому SetSuspendState
немедленно вызывает приостановку, а другие приложения не имеют возможности ее остановить.
Кто-нибудь знает, как я могу вернуть желаемое "вежливое" поведение снова в Vista?