獲取微信進程 PID
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
if 'WeChat.exe' == pinfo['name']:
PID = pinfo['pid']
# -*- coding:utf-8 -*-
import psutil
import pywinauto
from pywinauto.application import Application
import time
def getWinxin(number):
# 獲取微信的 PID
PID = 0
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
if 'WeChat.exe' == pinfo['name']:
PID = pinfo['pid']
# 連接 微信
app = Application(backend='uia').connect(process=PID)
win = app[u'微信']
# 查到微信的控件樹
# print(win.print_control_identifiers())
# 點擊通訊錄
# addresslist = win.child_window(title=u"通訊錄", control_type="Button")
# addresslist.draw_outline()
# cords = addresslist.rectangle()
# pywinauto.mouse.click(button='left', coords=(cords.left + 10, cords.top + 10))
# win.draw_outline()
# 點擊搜索
addresslist = win.child_window(title="搜索", control_type="Edit")
cords = addresslist.rectangle()
pywinauto.mouse.click(button='left', coords=(cords.left, cords.top))
pywinauto.mouse.click(button='left', coords=(cords.left, cords.top))
win.Edit.type_keys((number), with_spaces=True)
time.sleep(1)
# 輸入姓名並回車
win.type_keys('{ENTER}')
win.Edit.type_keys(("微信機器人自動回復,,"), with_spaces=True).type_keys('{ENTER}')
if __name__ == '__main__':
# 測試,
# 輸入微信號, 或者備注姓名
# 微信號搜的更准確
# getWinxin("文件傳輸助手")
for i in ['文件傳輸助手', "微信團隊"]:
getWinxin(i)
問題: send_key 無法導入的話, 從 GitHub 下載 whl 本地安裝
轉載: https://www.jb51.net/article/181580.htm
參考: https://pywinauto.readthedocs.io/en/latest/