批量发送企业微信消息

8 篇文章 0 订阅
import pygetwindow as gw
import time,traceback
import pyautogui
from pywinauto.keyboard import send_keys
from pywinauto.application import Application
from loguru import logger


def QhIsAppOpen(QhAppName,QhAppPath):
    """
    作者:阙辉
    判断程序是否已经打开,如果未打开,则打开并连接成功
    """
    try:
        try:
            QhApp = Application(backend="uia").connect(title=QhAppName)
            if QhApp.window(title=QhAppName).exists():
                logger.info("【AppIsOpen】{QhAppName}-已经打开,并连接成功!QueHui!".format(QhAppName=QhAppName))
                return QhApp
        except:
            QhApp = Application(backend="uia").start(QhAppPath)
            logger.info("【AppIsOpen】{QhAppName}-未打开,现已经打开,并连接成功!QueHui!".format(QhAppName=QhAppName))
    except:
        QhErrMsg = traceback.print_exc()
        logger.error("【AppIsOpen】{QhAppName}-失败,报错消息\n{QhErrMsg}!QueHui!".format(QhErrMsg=QhErrMsg))


def QhAppIsActive(QhAppTittle):
    """
    作者:阙辉
    判断程序是否已经激活,如果未激活,则激活并连接成功
    """
    try:
        QhWindow = gw.getWindowsWithTitle(QhAppTittle)[0]  # 假设这是获取窗口的方式
        try:
            QhWindow.isactive()   # 激活状态返回真,否则报错
            logger.info("【AppIsActive】{QhAppName}-是已激活状态,无需激活!QueHui!".format(QhAppName=QhAppName))
            return QhWindow
        except:
            QhWindow.restore()
            QhWindow.activate()
            logger.info("【AppIsActive】{QhAppName}-未激活状态,现已激活!QueHui!".format(QhAppName=QhAppName))
        return QhWindow
    except:
        QhErrMsg = traceback.print_exc()
        logger.error("【AppIsActive】{QhAppName}-激活失败,报错消息\n{QhErrMsg}!QueHui!".format(QhErrMsg=QhErrMsg))

def QhAppSendMsg(QhAppName,QhRecipients):
    """
    作者:阙辉
    发送消息
    """
    time.sleep(1)
    logger.info("【SendMsg】{QhAppName}-1、打开搜索框!QueHui!".format(QhAppName=QhAppName))
    pyautogui.hotkey('ctrl','f')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-2、输入搜索内容!QueHui!".format(QhAppName=QhAppName))
    send_keys('文件传输助手')
    time.sleep(1)
    pyautogui.keyDown('down')
    pyautogui.keyUp('down')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-3、回车!QueHui!".format(QhAppName=QhAppName))
    send_keys('{ENTER}') # 回车键必须全部大小
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-4、选择所有内容!QueHui!".format(QhAppName=QhAppName))
    pyautogui.hotkey('ctrl','a')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-5、复制要发送的内容!QueHui!".format(QhAppName=QhAppName))
    pyautogui.hotkey('ctrl','c')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-6、打开搜索框!QueHui!".format(QhAppName=QhAppName))
    pyautogui.hotkey('ctrl','f')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-7、输入搜索要发送对象!QueHui!".format(QhAppName=QhAppName))
    send_keys(QhRecipients)
    time.sleep(1)
 
    logger.info("【SendMsg】{QhAppName}-8、回车!QueHui!".format(QhAppName=QhAppName))
    send_keys('{ENTER}') # 回车键必须全部大小
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-9、粘贴要发送的内容!QueHui!".format(QhAppName=QhAppName))
    pyautogui.hotkey('ctrl','v')
    time.sleep(1)

    logger.info("【SendMsg】{QhAppName}-10、发送消息!QueHui!".format(QhAppName=QhAppName))
    send_keys('{ENTER}') # 回车键必须全部大小
    time.sleep(2)

def QhSendMsgMain(QhAppName,QhAppPath,QhRecipientsS):
    
    QhApp = QhIsAppOpen(QhAppName,QhAppPath)
    time.sleep(5)
    QhAppIsActive(QhAppName)

    for QhRecipients in QhRecipientsS:
        logger.info("【SendMsging】{QhRecipients}-正在发送消息!QueHui!".format(QhRecipients=QhRecipients))
        QhAppSendMsg(QhAppName,QhRecipients)

if __name__ == '__main__':
    while True:
        try:
            QhAppName = "企业微信"
            QhAppPath = r"D:\Program Files (x86)\WXWork\WXWork.exe"
            QhRecipientsS = input("请输入要发送的对象,多个对象用英文逗号隔开:")
            QhRecipientsS = QhRecipientsS.split(",")
            QhSendMsgMain(QhAppName,QhAppPath,QhRecipientsS)
        except:
            QhErrMsg = traceback.print_exc()
            logger.error("【SendMsg】{QhAppName}-发送失败,报错消息\n{QhErrMsg}!QueHui!".format(QhErrMsg=QhErrMsg))

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值