Python实现全自动输入文本

news2025/1/11 9:56:32

文章目录

  • 1. 效果图
  • 2. 示例代码
  • 3. 代码解释

1. 效果图

win32gui
该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软件来确定输入焦点子窗口的类名,如下动图所示:
    WinSpy++
    WinSpy++
    从该界面可以看到Class值是Scintilla
  4. 中间部分代码的解释可以参考点击这里
  5. win32gui.GetMenuItemID(subMenu, 6)获取保存按钮的索引,这里的6是指保存选项在菜单中的位置序号,如下图所示
    保存序号
    在文件菜单栏中,新建是第0项,打开是第1项,以此类推,保存是第6项。
  6. win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)发送点击保存按钮的消息,即可自动保存文本内容。

我是予人三,希望大家点赞支持我哦~ 有大家的鼓励我会分享更多内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Modern Radar for Automotive Applications(用于汽车应用的现代雷达)

目录 1 引言 2 汽车雷达系统的工作原理 2.1 基本雷达功能 2.2 汽车雷达架构 2.2.1 发射机 2.2.2 接收机 2.2.3 天线和天线阵 2.3 信号模型 2.3.1 振幅模型 2.3.2 噪声模型 2.4 雷达波形和信号处理 2.4.1 距离处理 2.4.2 多普勒处理 2.4.3 FMCW汽车雷达应用的典型波形参数…

[Unity好插件之PlayMaker]PlayMaker如何扩展额外创建更多的脚本

学习目标: 如果你正在学习使用PlayMaker的话,那么本篇文章将非常的适用。关于如何连线则是你自己的想法。本篇侧重于扩展适用更多的PlayMaker行为Action,那么什么是PlayMaker行为Action呢? 就是这个列表。当我们要给PlayMaker行为…

CSS的元素显示模式和CSS的背景

🍓个人主页:bit.. 🍒系列专栏:Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 HTML和CSS3 目录 一.CSS的元素显示模式 1.1什么是元素的显示模式 1.2块元素 1.3行内元素 1.4 行内块元素 1.5元素显示模式总结 1.6…

JavaEE——HttpServletRequest

HttpServletRequest 核心方法 方法功能String getProtocol()返回请求协议的名称和版本。String getMethod()返回请求的 HTTP 方法的名称String getRequestURI()从协议名称直到 HTTP 请求的第一行的查询字符串中,返回该请求的 URL 的一部分。String getContextPath…

DolphinScheduler3.1简介、部署、功能介绍以及架构设计

DolphinScheduler3.1简介、部署、功能介绍以及架构设计1.DolphinScheduler简介 1-1.关于DolphinScheduler Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处…

Day08--自定义组件的数据监听器案例

1.案例效果: 我的操作: 1》新建一个组件test4 2》在app.json里面将test4设置为全局组件 3》在home.wxml里面是用这个test4组件。 4》在test4.js中编写代码:【需要的配置项都弄一下呗。】 *********************************************…

anaconda3报错Can‘t find libdevice directory解决方案

anaconda3报错Cant find libdevice directory解决方案1. 问题描述2. 解决方案3. 原理分析4. 其他解决方案1. 问题描述 使用anaconda3运行tensorflow进行单机多GPU运算时报错: error: Cant find libdevice directory ${CUDA_DIR}/nvvm/libdevice较的全报错如下&…

【Wayland】QtWayland框架分析

QtWayland框架分析 QtWayland概念介绍 QtWayland是Qt官方基于Wayland开发的一款Toolbox,根据其官网介绍 The QtWayland module consists of two parts: Wayland platform plugin: Enables Qt applications to be run as Wayland clients. QtWaylandCompositor API…

地理空间技术改变世界的未来

摘要: 地理空间技术是一项重大的科学发现,它将人类的可能性推向了一个全新的水平。那么什么是地理空间技术呢?事实上,它与普通的空间数据不同,地理空间技术的创新使我们能够确定物体或人在地球上的确切位置。人们将地理空间技术应…

网络安全系列-四十: suricata 的运行模型Running mode讲解

1. 什么是Running mode 1.1. 基本概念 Sruciata由线程、线程模块、队列组成。 数据包在线程间传递通过队列实现,线程由多个线程模块组成,每个线程模块实现一种功能一个数据包可以由多个线程处理,数据包将通过队列传递到下一个线程。包每次由一个线程处理,但是引擎可以同时…

docker (网卡设置、namespace、网络互通)

1 查看网卡信息 查看网卡的三种命令 ip a lo: 表示本地网络 127.0.0.1eth0: 连接网卡的网络docker0: docker的网卡 ip link show ls /sys/class/net 以文件的形式查看 2 网卡的操作 网卡中增加IP ip addr add 192.168.100.120/24 dev et…

springboot+jsp大学图书借阅管理系统idea maven

本论文是以构建图书借阅为目标,使用 jsp制作,由前台用户借阅图书、后台管理员添加图书两大部分组成。着重论述了系统设计分析,系统的实现(用户注册模块,用户登录,用户浏览图书模块,图书借阅模块…

代码复杂度分析

1.复杂度分析原则 1.1 最大循环原则 只看高阶部分 public class SumNum {public static void main(String[] args) {System.out.println(sum2(4));}/*** 1-n 的累加* param n* return*/public static int sum1(int n){int sum 0;// 执行1次for (int i0;i<n;i){//这是三个…

轻量应用云服务器如何部署SpringBoot项目(jar包形式)?

这篇文章将介绍如何在腾讯云的轻量应用服务器上部署我们的java项目&#xff0c;本次演示的是java项目是使用springboot开发的单体项目&#xff0c;项目开发完成之后需要打包成jar&#xff0c;然后上传至云服务器&#xff0c;安装运行数据库文件之后&#xff0c;使用java -jar 的…

企业经营欺诈评分模型的开发与划定

近两周&#xff0c;番茄风控上线的课程中&#xff0c;涉及的财税票贷产品课程干货满满。 今天我们跟大家讲讲在模型中最干货的内容&#xff0c;也就是在税票贷产品中最干货的欺诈模型的开发与使用&#xff0c;本文会基于税票中票&#xff08;也就是发票&#xff09;相关的数据进…

双缝函数的编程

摘要 在傅立叶光学中&#xff0c;光学元件通常可以建模为传递函数&#xff0c;该函数对输入场的振幅和相位进行调制。VirtualLab Fusion提供了可编程功能&#xff0c;用户可以在其中定义元件的函数体现。 此示例提供了具有自定义缝隙宽度的双缝函数的代码段。 狭缝在y方向上是无…

CUDA 编程基础

1. GPU与CPU并行计算框架2. CUDA编程模型3 CUDA程序1. GPU与CPU并行计算框架 GPU并不是一个独立运行的计算平台&#xff0c;而需要与CPU协同工作&#xff0c;可以看成是CPU的协处理器&#xff0c;因此当我们在说GPU并行计算时&#xff0c;其实是指的基于CPUGPU的异构计算架构。…

学习日记(XML 文件解析、检索、工厂设计模式、装饰设计模式)

文章目录学习日记&#xff08;XML 文件解析、检索、工厂设计模式、装饰设计模式&#xff09;一、XML 概述1. 概念2. XML 的创建及语法规则3. XML 文档约束方式二、XML 文件的解析技术1. 使用 Dom4j 解析 XML 文件2. XML 解析案例三、XML 文件的数据检索技术&#xff1a;XPath四…

Nacos 注册中心、配置文件中心的常用配置(springcloud)

Nacos Discovery Starter 更多的配置项 1.服务端地址 spring.cloud.nacos.discovery.server-addr 无 Nacos Server 启动监听的 ip 地址和端口2.服务名 spring.cloud.nacos.discovery.s ervice ${spring.application.name} 给当前的服务命名3.服务分组spring.cloud.nacos.disc…

Nuttx系统学习笔记(三)——使用Nuttx操作STM32F429外设

在上一篇&#xff0c;我们已经学会了如何将Nuttx进行烧录&#xff0c;以及学会了如何部署这个操作系统&#xff0c;接下来我们就要使用这个操作系统来实现我们对嵌入式设备的控制&#xff0c;当然也是从点灯开始的。这个基于Posix架构的操作系统使用起来是跟FreeRTOS那些操作系…