python利用pywin32模块自动化操作微信发消息
import win32gui import win32api import win32con import time import win32clipboard as wdef FindWindow(className, windowName):
return win32gui.FindWindow(className, windowName)
def SendMessage(hwnd, msg):
win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, None, msg)
time.sleep(0.5)
win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN,0)
win32gui.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN,0)
def SendWeChatMessage(windowName, message):
hwnd = FindWindow(None, windowName)
if hwnd !=0:
win32gui.ShowWindow(hwnd, win32con.SW_SHOW)
win32gui.SetForegroundWindow(hwnd)
SendMessage(hwnd, message)
else:
print("Cannot find the window")
def SetClipboardData(data):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, data)
w.CloseClipboard()
def TestSendWeChatMessage():
windowName = "微信"
message = "Hello, this is a test message sent by Python"
SetClipboardData(message)
SendWeChatMessage(windowName, message)
if __name__ == "__main__":
TestSendWeChatMessage()
In this example, we import the necessary modules including win32gui, win32api, win32con, time, and win32clipboard. We define a function FindWindow to find the window handle by its class name and window name. Then we define a function SendMessage to send the message to the specified window using the window handle.To send a WeChat message, we first find the window handle of the WeChat application using the FindWindow function. If the window handle is found, we show the window, set it as the foreground window, and send the message using the SendMessage function. If the window handle is not found, we print a message indicating that the window cannot be found.
We also define a function SetClipboardData to set the clipboard data with the message text. This is necessary because the SendMessage function simulates typing the message by sending key press events, and the message needs to be in the clipboard for this to work.
Finally, we define a test function TestSendWeChatMessage to test sending a WeChat message. We set the window name as "微信" (which is the Chinese name for WeChat) and the message as "Hello, this is a test message sent by Python". We set the clipboard data with the message text and then call the SendWeChatMessage function to send the message.
When we run the script, it will show the WeChat window if it is not already shown, set it as the foreground window, and send the test message to the WeChat window.
This is just a simple example of how to use the pywin32 module to automate sending messages in WeChat. You can further customize the script to send messages to specific contacts or groups, handle different types of messages, or perform other actions in the WeChat application. With some creativity and knowledge of the Win32 API, you can create powerful automation scripts for interacting with various Windows applications, including WeChat.