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

 更新时间:2022年11月22日 10:57:20   作者:予人三  
这篇文章主要和大家分享一个Python全自动输入文本的脚本,可以实现自动用Notepad++打开文本文件,然后自动输入文本,最后保存并关闭文件,从而实现全面自动化处理文本,希望对大家有所帮助

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自动输入文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 只用20行Python代码实现屏幕录制功能

    只用20行Python代码实现屏幕录制功能

    python小哥哥发现女朋友最近总是很忙的样子,晚上匆匆忙忙道过晚安就不说话了.可是,QQ头像却会偶尔亮起来.小哥哥非常担心,是不是账号被盗了呢然后,就想帮女朋友排查一下所以就用python写了一个录制脚本,悄悄装在女友电脑上,需要的朋友可以参考下
    2021-06-06
  • python中OrderedDict的使用方法详解

    python中OrderedDict的使用方法详解

    本篇文章主要介绍了python中OrderedDict的使用方法详解,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Python3中的bytes类型和str类型

    Python3中的bytes类型和str类型

    这篇文章主要介绍了Python3中的bytes类型和str类型,bytes是一种比特流,他们之间的关系则是Python有个内置函数bytes()可以将字符串str类型转换成bytes类型,下文更多详细内容需要的小伙伴可以参考一下
    2022-05-05
  • Python个人博客程序开发实例框架设计

    Python个人博客程序开发实例框架设计

    这篇文章主要介绍了怎样用Java来实现一个完整的个人博客系统,我们通过实操上手的方式可以高效的巩固所学的基础知识,感兴趣的朋友一起来看看吧
    2022-12-12
  • Python中ImportError错误的详细解决方法

    Python中ImportError错误的详细解决方法

    最近辛辛苦苦安装完了python,最后再运行的时候会出现错误,所以这篇文章主要给大家介绍了关于Python中ImportError错误的详细解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Python匿名函数详情

    Python匿名函数详情

    这篇文章主要介绍了Python匿名函数,在python中,除了一般使用def定义的函数外,还有一种使用lambda定义的匿名函数,这种函数可以用在任何普通函数可以使用的地方,但在定义时被严格限定为单一表达式,下面来看详细内容吧
    2021-11-11
  • 浅谈Python的Django框架中的缓存控制

    浅谈Python的Django框架中的缓存控制

    这篇文章主要介绍了Python的Django框架中的缓存控制,包括Vary头部以外的其他头部使用等,需要的朋友可以参考下
    2015-07-07
  • 关于pyqt5弹出提示框的详细介绍

    关于pyqt5弹出提示框的详细介绍

    在实际的程序开发中经常会用到各种各样的消息框来给用户一些提示或提醒,下面这篇文章主要给大家介绍了关于pyqt5弹出提示框的详细介绍,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Python中使用sklearn进行特征降维的方法

    Python中使用sklearn进行特征降维的方法

    在Python中,可以使用sklearn库中的特征降维方法对数据进行处理。主要包括基于PCA算法的降维、基于LDA算法的降维、以及利用特征选择方法进行降维。这些方法可以提高模型的训练效率和预测准确率,特别是在高维数据集中具有重要的作用
    2023-04-04
  • Python学习笔记之读取文件、OS模块、异常处理、with as语法示例

    Python学习笔记之读取文件、OS模块、异常处理、with as语法示例

    这篇文章主要介绍了Python学习笔记之读取文件、OS模块、异常处理、with as语法,结合实例形式简单分析了Python针对文件、目录的读取、异常处理等相关操作技巧,需要的朋友可以参考下
    2019-06-06

最新评论