1. 程式人生 > 程式設計 >python操作微信自動發訊息的實現(微信聊天機器人)

python操作微信自動發訊息的實現(微信聊天機器人)

前言

最近在學習python,發現一個微信自動發訊息的小demo感覺很有意思,試了一下,不成功,因為demo中用的是itchat這個庫來操作微信,而這個庫是通過微信網頁版來操作微信的,現在微信網頁版已經不能登入了所以失敗,我又試了第二種方法,我試圖找到微信介面上的搜尋框控制元件,使用搜索框控制元件找到想法訊息的人,然後傳送訊息,結果就是又失敗了,為啥呢?經過我翻翻翻,找找找,發現微信的介面是使用duilib實現的,介面都是畫上去的,控制元件只是邏輯上存在,而實際沒有,我們根本獲取不到,然後我只能通過手動移動滑鼠的方式來實現了

1.開啟微信,固定在左上角,這樣便於我們固定微信上各個控制元件所在座標

2.把滑鼠移動到微信左邊的“通訊錄”按鈕上,單擊,開啟通訊錄

3.把滑鼠移動到搜尋框把你要找的人的微信名複製進去,回車,開啟對話方塊(你要問我為什麼要先開啟通訊錄再去搜索框搜?問就是不知道,其實是經過我的實驗這樣比較穩定,直接搜有bug,如果你能找到其他的解決辦法請告訴我,謝謝啦)

4.把你要傳送的話複製到對話方塊,回車或者alt+s 傳送

這就結束了,下面是部分程式碼

import win32clipboard as w
import win32con
import win32api
import win32gui
import time
 
 
#把文字放入剪貼簿
def setText(aString):
  w.OpenClipboard()
  w.EmptyClipboard()
  w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
  w.CloseClipboard()
 
#模擬ctrl+V
def ctrlV():
  win32api.keybd_event(17,0) #ctrl
  win32api.keybd_event(86,0) #V
  win32api.keybd_event(86,win32con.KEYEVENTF_KEYUP,0)#釋放按鍵
  win32api.keybd_event(17,0)
 
#模擬alt+s
def altS():
  win32api.keybd_event(18,0)
  win32api.keybd_event(83,0)
  win32api.keybd_event(18,0)
# 模擬enter
def enter():
  win32api.keybd_event(13,0)
  win32api.keybd_event(13,0)
#模擬單擊
def click():
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0)
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0)
#移動滑鼠的位置
def movePos(x,y):
  win32api.SetCursorPos((x,y))
 
if __name__=="__main__":
  
  #獲取滑鼠當前位置
  #hwnd=win32gui.FindWindow("MozillaWindowClass",None)
  hwnd = win32gui.FindWindow("WeChatMainWndForPC",None)
  win32gui.ShowWindow(hwnd,win32con.SW_SHOW)
  win32gui.MoveWindow(hwnd,1000,700,True)
  time.sleep(0.01)
  #1.移動滑鼠到通訊錄位置,單擊開啟通訊錄
  movePos(28,147)
  click()
  #2.移動滑鼠到搜尋框,單擊,輸入要搜尋的名字
  movePos(148,35)
  click()
  setText('胡歌')
  ctrlV()
  time.sleep(1) #別問我為什麼要停1秒,問就是給微信一個反應的時間,他反應慢反應不過來,其他位置暫停的原因同樣
  enter()
  time.sleep(1)
  #3.複製要傳送的訊息,傳送
  setText('你好啊')
  ctrlV()
  altS()

全部程式碼我已經放在了我的github上,歡迎下載https://github.com/p910/python

到此這篇關於python操作微信自動發訊息的實現(微信聊天機器人)的文章就介紹到這了,更多相關python操作微信自動發訊息 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!