检查Applescript中的显示是否处于休眠状态

检查Applescript中的显示是否处于休眠状态,applescript,Applescript,我试图检查显示器是否处于休眠状态,然后在AppleScript中执行一些代码 到目前为止我已经试过了- set display_sleep_state to do shell script "ioreg -n IODisplayWrangler |grep -i IOPowerManagement" if display_sleep_state contains sleeping then -- Display is asleep else if display_sleep_state c

我试图检查显示器是否处于休眠状态,然后在AppleScript中执行一些代码

到目前为止我已经试过了-

set display_sleep_state to do shell script "ioreg -n IODisplayWrangler |grep -i IOPowerManagement"
if display_sleep_state contains sleeping then
   -- Display is asleep
else if display_sleep_state contains awake then
   -- Display is awake
else
   -- We don't know.
end if
我发现这里-

但显示睡眠状态不包含睡眠或清醒

我也试过这个,除了设置变量外,几乎是一样的

delay 6 -- test with display awake, then test with display asleep (display sleep hotkeys are ctrl+shift+eject)
set sleeping to 1
set awake to 4
set display_sleep_state to do shell script "ioreg -n IODisplayWrangler |grep -i IOPowerManagement"
if display_sleep_state contains sleeping then
   say "display asleep"
else if display_sleep_state contains awake then
   say "display awake"
else

   say "unknown"
end if
来源-

但这也不起作用,会在说它是在睡觉还是随机醒来之间切换


有人知道怎么做吗?

首先,当您使用do shell脚本命令时,结果会以文本形式返回给您。因此,if语句必须检查一些文本。因此,您的if语句应该如下所示。。。请注意引号使单词沉睡在文本中

if display_sleep_state contains "sleeping" then
接下来,您需要知道doshell脚本命令返回的文本中是否存在睡眠。因此,请自行运行该命令并查看返回的文本。看看当显示器处于唤醒状态与处于休眠状态时,文本是如何变化的,您会发现可以在if语句中使用一些词来确定显示器状态。我没有睡眠显示器,所以我帮不了你。祝你好运

do shell script "ioreg -n IODisplayWrangler |grep -i IOPowerManagement"