前言
在做一个游戏脚本过程中,想实现后台发送消息给游戏窗口以实现自动喊话的功能时,发现所使用的windll.user32.PostMessageW函数在发送中文消息时会显示乱码,网上查找的大多数解决方案都是c语言的,百般尝试未果后最终自行解决了这一问题。
解决方案
见如下代码:
from ctypes import windll
import win32con
__PostMessageW = windll.user32.PostMessageW
def type_str(msg: str):
"""
@Description : 打字
---------
@Args : msg:目标字符
-------
@Returns : None
-------
"""
for i in msg:
__PostMessageW(__handle, win32con.WM_CHAR, ord(i), 0)
__handle为目标窗口句柄
调用方法:
type_str("123木头人abc")