请问怎么监测 MacBook 合盖了,然后执行一个小脚本呀?

2020-12-19 02:07:06 +08:00
 Dvel
import psutil

for pid in psutil.pids():
    name = psutil.Process(pid).name()
    if name == 'QQ jietu plugin' or name == 'QQ':
        print(pid, name)
        psutil.Process(pid).terminate()

比如这样一个小脚本,在合盖的时候执行一下,关掉 QQ 。
因为我无数次睡前忘了关掉 QQ,刚要睡着 QQ 就他妈响起了登录声。

1231 次点击
所在节点    问与答
2 条回复
geelaw
2020-12-19 02:18:53 +08:00
通常状况下合盖后会进入睡眠状态,我以为 macOS 进入睡眠之后 app 就不运行了?

可能 1 是程序阻止了睡眠,这样的话就不能检测睡眠事件(因为根本不发生)。
可能 2 是睡眠期间程序偶尔可以运行,此时可以检测即将睡眠的事件并进行操作。

另一种思路是检测目前有几个显示器,如果显示器的数目降低到 0 则执行程序。

不宜检测是否合盖,因为连接外置显示器、键鼠、电源时,合盖不应导致活动暂停。
ynyounuo
2020-12-19 02:19:08 +08:00
ioreg -r -k AppleClamshellState

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/736947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX