スリープの解除を検出

AppleScript でスリープから復帰したことを調べられないかと思い、探してみる。

なんのことはない。system.log にスリープとスリープ解除は書き出されているのですね。で、次のようなスクリプト。

Script Editor で開く

property theRes : ""

on run
    set theRes to do shell script "grep -i 'system wake' /var/log/system.log"
end run

on idle
    set tmp to do shell script "grep -i 'system wake' /var/log/system.log"
    if tmp is not theRes then
        set theRes to tmp
        display dialog "Wake up!" buttons {"OK"} default button 1 giving up after 15 with icon 1
    end if
    return 1
end idle

これだけでスリープ解除を調べることができました。詳しく動作の検証を行っていないのでもしかしたら動かなくなったりするかもしれません。

ちなみに、

Script Editor で開く

do shell script "grep -i 'system sleep' /var/log/system.log"

とすることでスリープを検出することができますが、何か動作を行う前にスリープしてしまい、スリープが解除されたときにスクリプトが実行されるのでこの方法は使えません。

0 件のコメント :

コメントを投稿