[ Content contribution] 添加微信 快捷键的另外一种方法
Tofloor
poster avatar
五星
deepin
2024-12-25 16:03
Author

创建虚拟py环境

python3 -m venv .venv

激活虚拟环境

source .venv/bin/activate

安装必须包

sudo apt-get install python3-tk python3-dev python3-venv python3-pip
sudo apt install gnome-screenshot

pip3 install pyautogui
pip3 install pillow
pip3 install pyinstaller

sudo ln -s /opt/apps/github.gnome.gnome-screenshot/files/bin/gnome-screenshot /usr/local/bin/gnome-screenshot

编译

pyinstaller --onefile --add-data "wechat_tray.png:." auto_click_wechat_tray.py

chmod +x dist/auto_click_wechat_tray 

执行 dist/auto_click_wechat_tray

添加快捷键

在控制中心,添加 ctrl + alt +w ,命令填写 auto_click_wehchat_tray的路径

源码


import os
import sys
import pyautogui

# 获取打包后的资源路径
def resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)

# 使用 resource_path 加载图片
image_path = resource_path('wechat_tray.png')
part = pyautogui.locateOnScreen(image_path)

if part is not None:
    print("找到图片,位置为:", part)
    center = pyautogui.center(part)
    pyautogui.moveTo(center.x, center.y)
    pyautogui.click()
else:
    print("未找到图片")

打包好的二进制文件:

https://c.wss.cc/f/fw5gs6srtgk 复制链接到浏览器打开

不足

  1. 识别速度还有待优化,无非就是调节locateOnScreen 几个参数,懒得搞了,只为抛砖引玉,程序也不够健壮
  2. wechat不能在任务栏折叠。
Reply Favorite View the author
All Replies
阿顺呀
deepin
2024-12-25 17:52
#1

我在这个https://bbs.deepin.org/post/282785 基础上加了一个 模拟坐标点击

先获取到托盘图标的坐标位置

#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
	if test $active -eq $item
    then
        echo $item
        xdotool windowminimize $item
    else
		xdotool mousemove 1627 1063 click 1
		xdotool windowactivate $item
    fi
done

识别速度还行,bug也有两个:

1、托盘图标必须在外面,不能折叠且位置不能变

2、点多次之后图标会不见(透明)折叠重新展开又有了。

Reply View the author