简单来说,就是想用Python实现AHK的SendRaw
命令的功能,也就是不模拟键盘,不经剪贴板,直接将Unicode字符输出到任意插入点
——
问了AI n多次,结果都不行,pyautogui.write
不能写中文等非英文字符,有些要求识别插入点控件的又没法普适使用,用Win API的又没效果(没输出任何东西)……折腾了好久
——
这期间使用的是 Notepad2 等记事本衍生品来试验,试得都要红温了,索性把插入点放到Vscode,一试……居然行了,什么鬼事情?
——
所用的Python代码如下:
import win32gui import win32api import win32con import time def send_raw(text, hwnd=None): """ 向目标窗口发送原始字符串(类似 AHK 的 SendRaw) :param text: 要发送的字符串(支持中文、特殊符号) :param hwnd: 目标窗口句柄(若为 None,则发送到当前焦点窗口) """ if hwnd is None: hwnd = win32gui.GetForegroundWindow() # 获取当前焦点窗口 for char in text: print(char) # 发送 WM_CHAR 消息(支持 Unicode) win32api.SendMessage(hwnd, win32con.WM_CHAR, ord(char), 0) time.sleep(0.01) # 避免输入过快导致丢字 time.sleep(3) send_raw("输入字符txt测试¥☆")
——
目前测试能够成功输入的目标程序有:vscode,各聊天软件,各浏览器,Everything Toolbar;
测试不能输入的目标程序有:记事本及其各种衍生mod,explorer,Process Explorer,Everything,WPS,MS Office
——
最后,跪求了,怎么让Python完美实现AHK的SendRaw
功能?