"""老板键 - 一键切换摸鱼/工作界面按 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()