2015-07-31 4 views
1

У меня есть приложение, отличное от песочницы OS X, которое должно знать, задерживает ли какое-либо другое приложение простоя (с использованием IOPMAssertionCreateWithName() и/или IOCancelPowerChange).Как я могу узнать, задерживает ли другое приложение Mac простоя?

Мне не нужно знать, почему, мне просто нужно знать, что они почему-то задерживают его, что означает, что мое приложение должно ждать, прежде чем пытаться заблокировать экран, потому что пользователь в настоящее время использует систему (например, для просмотра видео).

Есть ли способ узнать, что простоя во сне временно задержали?

ответ

1

Похоже, вы можете использовать IOPMCopyAssertionsStatus(). Это приведет к появлению словаря, показывающего общесистемный уровень утверждения для различных утверждений. Посмотрите значение для kIOPMAssertionTypePreventUserIdleDisplaySleep (или kIOPMAssertionTypePreventUserIdleSystemSleep, если это то, что вы действительно хотите). Если он присутствует и больше 0, что-то предотвращает просмотр режима ожидания/системы.

+1

Именно то, что мне нужно. МОЖЕТ ЛИ Я ПОЗВОЛЯЕТ ВАС, КЕН? –

Смежные вопросы