Python实现全自动输入文本的示例详解

Dulcea ·
更新时间:2024-09-20
· 137 次阅读

目录

1. 效果图

2. 示例代码

3. 代码解释

1. 效果图

该Python脚本可以实现自动用Notepad++打开文本文件,然后自动输入文本,最后保存并关闭文件,从而实现全面自动化处理文本。

2. 示例代码

Python脚本源码如下,主要使用了win32gui、win32con和win32api模块

import win32gui import win32con import win32api import time ret = win32api.ShellExecute(1, 'open', 'D:\\test.txt', '', '', 1) print('正在打开软件...') time.sleep(2) handle = win32gui.FindWindow(None, r'D:\test.txt - Notepad++') handleEdit = win32gui.FindWindowEx(handle, None, 'Scintilla', None) menu = win32gui.GetMenu(handle) subMenu = win32gui.GetSubMenu(menu, 0) mystring=['北国风光,千里冰封,万里雪飘。', '望长城内外,惟余莽莽;大河上下,顿失滔滔。', '山舞银蛇,原驰蜡象,欲与天公试比高。', '须晴日,看红装素裹,分外妖娆。', '江山如此多娇,引无数英雄竞折腰。', '惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。', '一代天骄,成吉思汗,只识弯弓射大雕。', '俱往矣,数风流人物,还看今朝。','《沁园春·雪》'] for index, i in enumerate(mystring): for ch in i: print(ch) win32gui.SendMessage(handleEdit, win32con.WM_CHAR, ord(ch), 0) time.sleep(0.05) # 模拟按下回车键的操作 win32api.keybd_event(13, 0, 0, 0) time.sleep(0.05) win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) #获取保存按钮 cmdId = win32gui.GetMenuItemID(subMenu, 6) #点击保存 win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0) #关闭窗口 win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0) 3. 代码解释

1.win32api.ShellExecute(1, 'open', 'D:\\test.txt', '', '', 1)用默认的程序打开D盘目录下的test.txt文件,我这里设置默认用Notepad++打开文件文件;

2.win32gui.FindWindow(None, r'D:\test.txt - Notepad++')查找标题为D:\test.txt - Notepad++的窗口,该字符串内容必须跟窗口的标题文本一致,如下图所示:

3.win32gui.FindWindowEx(handle, None, 'Scintilla', None)第二个参数Scintilla非常关键,指的是输入焦点所在子窗口的类名,如下图

Windows系统自带的记事本,它的输入焦点子窗口类名是EDIT,Notepad++输入焦点子窗口类名是Scintilla。我们可以用WinSpy.exe软件来确定输入焦点子窗口的类名,如下动图所示:

从该界面可以看到Class值是Scintilla;

4.中间部分代码的解释可以参考点击这里

5.win32gui.GetMenuItemID(subMenu, 6)获取保存按钮的索引,这里的6是指保存选项在菜单中的位置序号,如下图所示

在文件菜单栏中,新建是第0项,打开是第1项,以此类推,保存是第6项。

6.win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)发送点击保存按钮的消息,即可自动保存文本内容。

到此这篇关于Python实现全自动输入文本的示例详解的文章就介绍到这了,更多相关Python自动输入文本内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



自动 输入 示例 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号