1

関数「IOPMSchedulePowerEvent」を使用してスリープまたはウェイクイベントをスケジュールし、デーモンを「IORegisterForSystemPower」に登録して電源状態の変更を受信します。すべてが正常に動作します!

システムがスリープ状態になり、後でスケジュールされた時間にウェイクアップすると、デーモンが何らかの作業を行い、その後、システムは再びスリープ状態になるはずです。

今私の質問:

  1. システムがユーザーまたはスケジュールされた時間によって起動されたかどうかをどのように検出できますか?

  2. ユーザーが現在システムを使用している場合、デーモンがシステムをスリープモードにする必要がないことをどのように検出できますか?

ありがとうNobik

4

1 に答える 1

5

さまざまな形式のユーザー インタラクションを検出する簡単な方法があります。これを使用CGEventSourceCounterForEventTypeすると、ブート時以降のキーボードの押下またはマウスの移動の回数を照会できます。これを一定間隔で行い、カウントを比較することで、相互作用を検出できます。

于 2010-05-27T18:09:36.403 に答える