bobo2017365 发表于 2022-10-5 11:57

[经验分享]python获取Mac盖子状态搞事

本帖最后由 bobo2017365 于 2022-10-5 12:07 编辑

因为工作的关系,十一放假在家需要用向日葵远程链接公司的电脑做些事情,可有的时候做其他事情的时候,容易忘记断开向日葵连接。

向日葵会保持远程连接,导致Mac无法自动睡眠,风扇就一直呼呼呼的转,一模盖子有些发热。

时间长了,肯定是对Mac不利的。为了保护我的Mac,我就在想写个程序,检查Mac的盖子合上了之后,就立即启动程序杀掉向日葵进程,代码就来了
具体的思路:
1. 向日葵APP的进程名包含关键字SunloginClient.app,那么只要抓取到含有这个进程的关键字就直接用shellkill
2. 设定定时任务执行此Python

import subprocess
import re


def display_status():
    POWER_MGMT_RE = re.compile(r'IOPowerManagement.*{(.*)}')
    output = subprocess.check_output(
   'ioreg -w 0 -c IODisplayWrangler -r IODisplayWrangler'.split())
    status = POWER_MGMT_RE.search(output.decode("utf8")).group(1)
    status_code = dict((k, v) for (k, v) in (x.split('=') for x in
            status.split(',')))
    current_status = status_code.get("CurrentPowerState", "")

    return current_status


if display_status() == "4":
    print("closed")
    subprocess.run("ps aux | awk '/SunloginClient.app/{print $2}' | xargs kill -9", shell=True)


大家也可以利用这个思路,去干些别的事情,比如想在盖子合上了之后,直接调用关机命令什么的都可以

Galaxyou 发表于 2022-10-5 17:39

这个好,试试todesk或者一个开源的rustdesk

bobo2017365 发表于 2022-10-6 14:23

Galaxyou 发表于 2022-10-5 17:39
这个好,试试todesk或者一个开源的rustdesk

嗯,都差不多吧,能满足远程的需求
我主要是记录下这个事情,看看以后能不能干点儿别的事儿
页: [1]
查看完整版本: [经验分享]python获取Mac盖子状态搞事