尉尉的可乐 发表于 2025-7-17 10:22:52

有没有Mac适用的类似wxauto这个库啊

本帖最后由 尉尉的可乐 于 2025-7-17 10:28 编辑

有没有Mac适用的类似wxauto这个库啊?
好不容易找到wxauto,看官网时发现不支持Mac{:10_243:}
目前AppleScript不可用

尉尉的可乐 发表于 2025-7-17 10:23:25

{:10_266:}

FishC 发表于 2025-7-17 10:27:27

在Mac上实现微信自动化,目前没有与 wxauto 完全相同的替代库,但可通过以下方案实现类似功能:

### 推荐方案
1. PyAutoGUI(跨平台)
   通过模拟鼠标键盘操作控制微信,适合基础自动化:
   
   import pyautogui
   import time

   # 示例:发送消息
   time.sleep(3)# 留出时间切换到微信窗口
   pyautogui.typewrite("Hello from Mac!")# 输入文本
   pyautogui.press("enter")# 发送
   
   优点: 简单易用,支持图像识别定位元素
   缺点: 依赖界面坐标,需手动切换窗口

2. AppleScript + Python
   调用Mac原生脚本控制应用(需微信基础支持):
   
   import os

   script = """
   tell application "WeChat"
       activate
       delay 1
       tell application "System Events"
         keystroke "Hello"
         key code 36# 回车键
       end tell
   end tell
   """
   os.system(f"osascript -e '{script}'")
   
   优点: 直接调用系统级操作
   缺点: 功能有限,复杂操作困难

### 注意事项
1. 微信无官方API,所有方案均依赖界面模拟,更新后可能失效
2. 部分功能需开启辅助权限:
   系统设置 > 隐私与安全性 > 辅助功能 > 允许终端/Python脚本
3. 复杂需求(如监听消息)可研究逆向工程,但难度较高

### 建议
- 基础操作:优先用 PyAutoGUI
- 定时任务:结合 cron 或 launchd
- 高风险操作:避免批量消息/营销行为,可能封号

> 附:安装PyAutoGUI
> 终端执行:pip3 install pyautogui

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

尉尉的可乐 发表于 2025-7-17 11:26:01

啊啊啊啊啊啊
有谁知道

FishC 发表于 2025-7-17 11:34:14

尉尉的可乐 发表于 2025-07-17 11:26
啊啊啊啊啊啊
有谁知道

关于Mac微信自动化的问题,这里总结可行方案(无需嵌套列表):

推荐工具:PyAutoGUI(跨平台)
优点:安装简单,支持图像识别定位
安装命令:

pip3 install pyautogui


基础使用示例:

import pyautogui
import time

# 确保微信窗口已激活(提前3秒手动点击)
time.sleep(3)

# 查找微信联系人图标(需提前截图保存为contact.png)
contact_pos = pyautogui.locateCenterOnScreen('contact.png', confidence=0.8)
if contact_pos:
    pyautogui.click(contact_pos)# 点击联系人
    time.sleep(1)
    pyautogui.typewrite("Hello Mac!")
    pyautogui.press('enter')# 发送
else:
    print("未找到联系人图标")


关键配置步骤:
1. 系统设置 → 隐私与安全性 → 辅助功能 → 解锁后勾选终端或使用的IDE(如PyCharm)
2. 截图技巧:用Command+Shift+4截取微信界面元素(如联系人/输入框),保存为png放在脚本目录

注意事项:
o 微信更新后需重新截图模板
o 避免高频操作(可能触发封控)
o 复杂功能需结合OpenCV提高识别精度(pip3 install opencv-python)

替代方案:
o 企业微信有官方API(需公司认证)
o 网页版微信逆向(不稳定)
o Automator基础工作流(仅支持点击操作)

> 如遇坐标定位问题,可用pyautogui.displayMousePosition()实时获取鼠标坐标

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

尉尉的可乐 发表于 2025-7-17 13:41:45

本帖最后由 尉尉的可乐 于 2025-7-17 13:43 编辑

FishC 发表于 2025-7-17 11:34
关于Mac微信自动化的问题,这里总结可行方案(无需嵌套列表):

推荐工具:PyAutoGUI(跨平台)


那怎么接收信息
@fishc

FishC 发表于 2025-7-17 13:43:02

尉尉的可乐 发表于 2025-07-17 13:41
FishC 发表于 2025-7-17 11:34
关于Mac微信自动化的 ...

在Mac上接收微信消息需要更复杂的方案,以下是两种可行方法(需结合使用):

### 方案一:PyAutoGUI + OCR 监控方案
import pyautogui
import pytesseract
from PIL import Image
import time

# 设置监控区域 (左上x, 左上y, 宽度, 高度)
MONITOR_AREA = (300, 200, 400, 300)# 需调整为聊天窗口位置

def check_new_message():
    # 截取监控区域
    screenshot = pyautogui.screenshot(region=MONITOR_AREA)
   
    # 使用OCR识别文字
    text = pytesseract.image_to_string(screenshot, lang='chi_sim+eng')
   
    # 检查关键字 (示例)
    if "紧急" in text:
      print("发现紧急消息!")
      return True
    return False

# 安装依赖:
# pip3 install pytesseract pillow
# brew install tesseract

### 方案二:系统通知监听方案(更可靠)
import os
import re
from datetime import datetime

def parse_notifications():
    """解析系统通知日志"""
    cmd = 'log show --predicate \'subsystem == "com.apple.notificationcenter"\' --last 1m'
    logs = os.popen(cmd).read()
   
    wechat_msgs = []
    for line in logs.splitlines():
      if 'WeChat' in line and 'body' in line:
            # 提取消息内容
            match = re.search(r'body\\" = \\"(.+?)\\"', line)
            if match:
                msg = match.group(1)
                wechat_msgs.append(msg)
   
    return wechat_msgs

# 定时执行检查
while True:
    new_msgs = parse_notifications()
    if new_msgs:
      print(f"{datetime.now()} 收到新消息:")
      for msg in new_msgs:
            print(f" - {msg}")
    time.sleep(10)# 每10秒检查一次

### 必要设置步骤:
1. 开启系统权限:
   系统设置 → 隐私与安全性 → 辅助功能 → 解锁 → 勾选终端
   
2. 安装OCR依赖:
   
   # 安装Homebrew(如未安装)
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
   
   # 安装Tesseract
   brew install tesseract
   brew install tesseract-lang# 中文包
   
   # Python库
   pip3 install pytesseract pillow
   

### 注意事项:
1. OCR方案:
   - 需要手动确定聊天窗口位置
   - 识别准确率受字体/背景影响
   - 使用前需校准区域坐标

2. 通知方案:
   - 只能获取显示通知的消息
   - 需开启微信的桌面通知(微信设置 → 新消息通知)
   - 首次运行需在系统弹窗中允许终端访问通知

> 两种方案都只能获取新消息到达提醒,无法获取完整聊天记录。企业微信用户建议使用官方API:https://developer.work.weixin.qq.com

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 有没有Mac适用的类似wxauto这个库啊