欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python操作微信自動發(fā)消息的實(shí)現(xiàn)(微信聊天機(jī)器人)

 更新時間:2020年07月14日 08:30:54   作者:杰仔要努力  
這篇文章主要介紹了python操作微信自動發(fā)消息(微信聊天機(jī)器人),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在學(xué)習(xí)python,發(fā)現(xiàn)一個微信自動發(fā)消息的小demo感覺很有意思,試了一下,不成功,因?yàn)閐emo中用的是itchat這個庫來操作微信,而這個庫是通過微信網(wǎng)頁版來操作微信的,現(xiàn)在微信網(wǎng)頁版已經(jīng)不能登錄了所以失敗,我又試了第二種方法,我試圖找到微信界面上的搜索框控件,使用搜索框控件找到想法消息的人,然后發(fā)送消息,結(jié)果就是又失敗了,為啥呢?經(jīng)過我翻翻翻,找找找,發(fā)現(xiàn)微信的界面是使用duilib實(shí)現(xiàn)的,界面都是畫上去的,控件只是邏輯上存在,而實(shí)際沒有,我們根本獲取不到,然后我只能通過手動移動鼠標(biāo)的方式來實(shí)現(xiàn)了

1.打開微信,固定在左上角,這樣便于我們固定微信上各個控件所在坐標(biāo)

2.把鼠標(biāo)移動到微信左邊的“通訊錄”按鈕上,單擊,打開通訊錄

3.把鼠標(biāo)移動到搜索框把你要找的人的微信名復(fù)制進(jìn)去,回車,打開對話框(你要問我為什么要先打開通訊錄再去搜索框搜?問就是不知道,其實(shí)是經(jīng)過我的實(shí)驗(yàn)這樣比較穩(wěn)定,直接搜有bug,如果你能找到其他的解決辦法請告訴我,謝謝啦)

4.把你要發(fā)送的話復(fù)制到對話框,回車或者alt+s 發(fā)送

這就結(jié)束了,下面是部分代碼

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,0,0) #ctrl
  win32api.keybd_event(86,0,0,0) #V
  win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0)#釋放按鍵
  win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)
 
#模擬alt+s
def altS():
  win32api.keybd_event(18,0,0,0)
  win32api.keybd_event(83,0,0,0)
  win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0)
  win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)
# 模擬enter
def enter():
  win32api.keybd_event(13,0,0,0)
  win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)
#模擬單擊
def click():
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
#移動鼠標(biāo)的位置
def movePos(x,y):
  win32api.SetCursorPos((x,y))
 
if __name__=="__main__":
  
  #獲取鼠標(biāo)當(dāng)前位置
  #hwnd=win32gui.FindWindow("MozillaWindowClass",None)
  hwnd = win32gui.FindWindow("WeChatMainWndForPC", None)
  win32gui.ShowWindow(hwnd,win32con.SW_SHOW)
  win32gui.MoveWindow(hwnd,0,0,1000,700,True)
  time.sleep(0.01)
  #1.移動鼠標(biāo)到通訊錄位置,單擊打開通訊錄
  movePos(28,147)
  click()
  #2.移動鼠標(biāo)到搜索框,單擊,輸入要搜索的名字
  movePos(148,35)
  click()
  setText('胡歌')
  ctrlV()
  time.sleep(1) #別問我為什么要停1秒,問就是給微信一個反應(yīng)的時間,他反應(yīng)慢反應(yīng)不過來,其他位置暫停的原因同樣
  enter()
  time.sleep(1)
  #3.復(fù)制要發(fā)送的消息,發(fā)送
  setText('你好啊')
  ctrlV()
  altS()

全部代碼我已經(jīng)放在了我的github上,歡迎下載https://github.com/p910/python

到此這篇關(guān)于python操作微信自動發(fā)消息的實(shí)現(xiàn)(微信聊天機(jī)器人)的文章就介紹到這了,更多相關(guān)python操作微信自動發(fā)消息 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論