如何使用 Pywin32 发送消息函数发送大字符或数字字符



任何人都可以帮助我吗? 当我使用 Follow 函数将较低的字符 A 到 Z 发送到窗口时,它运行良好。但是,我不知道如何发送大字符、A 到 Z 或数字字符 0 到 9。我已经测试了很多次。

def post_keys(hwnd, i):
    win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, i, 0)
    win32api.SendMessage(hwnd, win32con.WM_KEYUP, i, 0)

非常感谢。

虚拟键代码0x41表示"A"键本身,而不是字母"A"的特定大小写。如果当前未按下 Shift 键,则它对应于小写"a"。如果按下 Shift 键,则它对应于大写"A"。

要使字母显示为大写,您必须发送带有虚拟密钥代码VK_SHIFT的第一条WM_KEYDOWN消息,然后发送另一条带有字母虚拟密钥代码的WM_KEYDOWN消息。

因此,您的代码应如下所示:

def post_keys(hwnd, i):
    win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, wincon.VK_SHIFT, 0)
    win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, i, 0)
    win32api.SendMessage(hwnd, win32con.WM_KEYUP, i, 0)
    win32api.SendMessage(hwnd, win32con.WM_KEYUP, wincon.VK_SHIFT, 0)

虚拟密钥代码的完整列表可在此 MSDN 页面上找到。

请记住,它们代表物理键盘键,因此当您不确定要发送哪个代码时,只需查看键盘即可了解如何键入特定字符。请记住,键代码转换为的实际字符将根据您选择的键盘布局而有所不同。

例如,使用EN_US键盘布局,要发送"%",首先发送VK_SHIFT,然后发送0x35("5"键)。

相关内容

最新更新