python怎么实行窗口输入_如何用python激活指定窗口的输入框,方便下一步模拟输出?...

首先,要明确你的需求,“模拟键盘输入”这个需求有些笼统了,因为Win32上模拟输入的方法实在太多,各有不同的效果。

其次,把焦点移动到文本框并不是必需的。如果你只是想往文本框里输入字符串,你甚至都不需要知道怎么模拟键盘动作,因为Win32提供了更高层次的抽象WM_CHAR。另外一些情况下,你可能希望手动模拟键盘的击键动作WM_KEYDOWN和WM_KEYUP,例如你想展现用输入法打字的效果,或者你想调用某个组合键。

关于窗口句柄的获取,Win32里面把控件之类的也称作Window,但是FindWindow()只能查找顶层窗口(也就是狭义的“窗口”),如果需要查找子窗口(也就是通常所说的“控件”),需要用FindWindowEx()。

还是以记事本为例:

from ctypes import windll as win32

WM_CHAR = 0x0102

try:

hWnd = win32.user32.FindWindowW('Notepad', None)

assert hWnd

hEdit = win32.user32.FindWindowExW(hWnd, None, 'Edit', None)

assert hEdit

except AssertionError:

print('Notepad not found')

else:

for char in 'Hello, 世界':

win32.user32.SendMessageW(hEdit, WM_CHAR, ord(char), None)

示例程序运行的效果是:记事本自始至终都没有获


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部