python通过微信for pc进行消息的发送

        日常生活或者工作中,有时候我们会希望通过微信来发送即时消息,随时提醒我们重要的事件,但是,微信是不提供个人接口的。虽然可以使用itchat,公众号等方法变通,但是,itchat需要通过扫码登录,现在微信对第三方平台登录控制比较严,存在账号被封的风险。那么,我们怎么样通过微信电脑版来解决这个问题呢?其实很简单,这里我介绍通过模拟按键的方式来实现相应的功能,这样只要在电脑上登录了微信pc版,就可以随时发送消息。

        操作思路:

        1、发送文字

             把文字放到剪切板--->给微信发送ctrl+v组合键-->给微信发送alt+s组合键触发发送按钮,这样文字就发送出去了

        2、发送图片

            和发送文字一样,就是图片需要处理成bmp格式,并且需要把数据特殊处理一下。

           下面我们看具体实现:

把文字放到剪切板:

def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
    w.CloseClipboard()

把图片放到剪切板:

def setImage(data):  # 写入剪切板  
    
    w.OpenClipboard()  
    try:  
        # Unicode tests  
        w.EmptyClipboard()  
        w.SetClipboardData(win32con.CF_DIB, data)  
    except:  
        traceback.print_exc()  
    finally:  
        w.CloseClipboard()  

模拟ctrl+v

def ctrlV():
    win32api.keybd_event(17,0,0,0)  #ctrl键位码是17
    win32api.keybd_event(86,0,0,0)  #v键位码是86
    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)    #Alt  
    win32api.keybd_event(83,0,0,0) #s
    win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0) #释放按键
    win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)

剩下的就很简单了,通过win32gui.FindWindow找到微信的句柄,然后把焦点放到搜索框,输入内容,再模拟点击找到的人,再调用上面几个函数,就可以达到发送图片或者文字的效果了。

比如:

setText('123455')
hwnd = win32gui.FindWindow(None, "微信")
ctrlV()
altS()

重要提醒:

微信pc端的输入框都没有句柄,所以需要通过模拟点击来获得蕉点。


你可能感兴趣的:(python通过微信for pc进行消息的发送)