当前位置:首页>python>用Python做一个"老板键"——一键切换到工作界面

用Python做一个"老板键"——一键切换到工作界面

  • 2026-09-20 00:28:37
用Python做一个"老板键"——一键切换到工作界面

【趣玩Python】Python摸鱼神器 · 第1篇

你正盯着屏幕傻笑,突然余光瞥见老板从身后走来。

0.5秒内,你的大脑疯狂运转:切窗口?锁屏?Alt+Tab?来不及了。

这时候,如果你有一个"老板键"——按一个键,所有摸鱼窗口消失,工作界面瞬间浮现。这才叫安全感。

今天,我们就用Python做这样一个"老板键"。


NO. 01

效果预览

程序运行后,会在系统托盘区(右下角)驻守。你摸鱼的时候,随时按下 Ctrl+Shift+Q,所有摸鱼窗口瞬间隐藏,桌面上只剩你的工作文档。

再按一次,摸鱼窗口又回来了。

老板路过?Ctrl+Shift+Q,一秒切换,面不改色。


NO. 02

核心思路

其实很简单:

1.监听键盘事件,捕捉 Ctrl+Shift+Q

2.按下时,把指定窗口隐藏(或最小化到托盘)

3.再按一次,把窗口恢复

我们用到两个库:

•keyboard:监听全局键盘事件

•pygetwindow:获取和操作窗口


NO. 03

完整代码

先安装依赖:

bash
pip install keyboard pygetwindow pystray Pillow
python
"""老板键 - 一键切换摸鱼/工作界面按 Ctrl+Shift+Q 切换状态"""import keyboardimport pygetwindow as gwimport pystrayfrom PIL import Image, ImageDrawimport threadingimport timeimport sys# ============ 配置区 ============# 在这里填写你的"摸鱼窗口"标题关键词(支持模糊匹配)# 只要窗口标题包含这些关键词,就会被隐藏/显示MOYU_KEYWORDS = [    "bilibili",    "哔哩哔哩",    "抖音",    "微博",    "Chrome",          # 浏览器    "Edge",            # 浏览器    "Steam",    "网易云音乐",    "QQ游戏",    "微信",            # 摸鱼聊天工具]# 老板键快捷键BOSS_KEY = "ctrl+shift+q"# ================================class BossKey:    def __init__(self):        # 记录被隐藏的窗口信息        self.hidden_windows = []        self.is_hidden = False        # 创建系统托盘图标        self._setup_tray()    def _setup_tray(self):        """创建系统托盘图标"""        # 画一个简单的盾牌图标        img = Image.new("RGB", (64, 64), color=(47, 79, 79))        d = ImageDraw.Draw(img)        # 画个简单的"B"代表Boss        d.text((20, 15), "B", fill=(255, 255, 255))        d.text((14, 45), "键", fill=(200, 200, 200))        self.tray_icon = pystray.Icon(            "bosskey",            img,            "老板键 - 已就绪",            self._create_menu()        )    def _create_menu(self):        """创建托盘菜单"""        return pystray.Menu(            pystray.MenuItem("状态: 就绪", None, enabled=False),            pystray.Menu.SEPARATOR,            pystray.MenuItem("退出", self._quit),        )    def _quit(self, icon=None, item=None):        """退出程序"""        # 退出前恢复所有窗口        if self.is_hidden:            self._restore_windows()        self.tray_icon.stop()        sys.exit(0)    def _find_moyu_windows(self):        """查找所有摸鱼窗口"""        moyu_windows = []        all_windows = gw.getAllWindows()        for win in all_windows:            if win.title == "":                continue            title_lower = win.title.lower()            for keyword in MOYU_KEYWORDS:                if keyword.lower() in title_lower:                    moyu_windows.append(win)                    break  # 一个窗口匹配到一个关键词就够了        return moyu_windows    def _hide_windows(self):        """隐藏所有摸鱼窗口"""        windows = self._find_moyu_windows()        self.hidden_windows = []        for win in windows:            try:                # 记录窗口原始位置和大小                self.hidden_windows.append({                    "window": win,                    "left": win.left,                    "top": win.top,                    "width": win.width,                    "height": win.height,                })                # 最小化窗口                win.minimize()            except Exception as e:                print(f"隐藏窗口失败: {win.title} - {e}")        self.is_hidden = True        count = len(self.hidden_windows)        self.tray_icon.title = f"老板键 - 已隐藏 {count} 个窗口"        print(f"[老板键] 已隐藏 {count} 个摸鱼窗口,安心工作!")    def _restore_windows(self):        """恢复所有摸鱼窗口"""        for info in self.hidden_windows:            try:                win = info["window"]                win.restore()                win.activate()            except Exception as e:                print(f"恢复窗口失败: {e}")        self.hidden_windows = []        self.is_hidden = False        self.tray_icon.title = "老板键 - 已就绪"        print(f"[老板键] 摸鱼窗口已恢复,继续快乐!")    def _toggle(self):        """切换隐藏/显示"""        if self.is_hidden:            self._restore_windows()        else:            self._hide_windows()    def run(self):        """启动老板键"""        # 注册全局快捷键        keyboard.add_hotkey(BOSS_KEY, self._toggle)        print("=" * 50)        print("  老板键已启动!")        print(f"  快捷键: {BOSS_KEY.upper()}")        print("  监控的摸鱼窗口关键词:")        for kw in MOYU_KEYWORDS:            print(f"    - {kw}")        print("=" * 50)        print("  按 Ctrl+Shift+Q 切换摸鱼/工作模式")        print("  右键托盘图标可退出程序")        print("=" * 50)        # 启动托盘图标(会阻塞,所以放最后)        self.tray_icon.run()if __name__ == "__main__":    boss = BossKey()    boss.run()

NO. 04

使用说明

第一步:安装依赖

bash
pip install keyboard pygetwindow pystray Pillow

注意:keyboard 库在 Windows 上需要管理员权限运行才能监听全局快捷键。所以运行时请用管理员身份打开命令行:

bash
# Windows:右键"以管理员身份运行"命令提示符,然后执行python bosskey.py

第二步:自定义你的摸鱼窗口

打开代码,找到 MOYU_KEYWORDS 列表,把你常用的摸鱼软件的窗口标题关键词加进去。

怎么查看窗口标题?打开任务管理器,切换到"进程"标签页,就能看到每个程序的窗口标题。

常见摸鱼软件的标题关键词:

•浏览器:Chrome、Edge、Firefox

•视频:bilibili、抖音、YouTube

•音乐:网易云音乐、QQ音乐

•游戏:Steam、Epic

第三步:运行

以管理员身份运行脚本,右下角会出现一个托盘图标。摸鱼时按下 Ctrl+Shift+Q,所有摸鱼窗口瞬间最小化。老板走了再按一次恢复。


NO. 05

进阶玩法

•多个老板键:可以设置不同快捷键对应不同分组,比如 Ctrl+Shift+1 只隐藏视频窗口,Ctrl+Shift+2 隐藏所有。

•假工作界面:隐藏摸鱼窗口的同时,自动弹出一个Excel或PDF,看起来特别忙碌。

•老板检测:配合摄像头+人脸识别,检测到老板靠近自动触发(这个就有点硬核了,有兴趣可以自己研究)。


NO. 06

摸鱼指数

维度
评分
说明
趣味性
★★★★☆
有特工片的感觉,每次按快捷键都很有仪式感
实用性
★★★★★
打工人刚需,真的用得上
隐蔽性
★★★★☆
托盘图标不起眼,快捷键无痕触发。但管理员权限可能被IT注意到

这个系列的核心精神:技术无罪,摸鱼有理。但别忘了,摸鱼是为了更好地工作(确信)。

最新文章

随机文章