最近需要捕获已经在运行的CMD窗口内容,并且需要根据指定输出内容来判断下一步的行动(输入指定内容)。

尝试了很多次后,想到一个思路:

通过inspect.exe来获取CMD窗口Name信息
通过uiautomation捕获到CMD窗口
通过输入Ctrl+A后Ctril+C来复制整个CMD窗口内容
然后获取到剪切板中复制的内容后进行判断

基本代码如下:

from uiautomation import DocumentControl
import clipboard # 获取CMD窗口
window = DocumentControl(searchDepth=3, Name='Text Area')
# 测试在CMD里面删除某个文件
window.SendKeys('del /p test.txt')
window.SendKeys('{Enter}') # Ctrl A / C 全选复制
window.SendKeys('{Ctrl}A')
window.SendKeys('{Ctrl}C')
# 获取剪切板里面的复制内容
result = clipboard.paste()
print(result)
# 判断复制内容是否是以特定内容结尾或者特定字符
if result.endswith('Delete (Y/N)?'):
# 输入内容
window.SendKeys('n')
window.SendKeys('{Enter}')
window.Close()
# 执行完成
print('finished')
else:
print('No such value,not complete')

Python: 捕获正在运行的CMD窗口内容的更多相关文章

  1. Python之uiautomation模块-获取CMD窗口中所打印的文字信息

    当我们想以自动化的方式操作软件,以提高办公或测试效率时,有许多成熟的工具,比如针对Web端应用的Selenium.针对移动端应用的Appium.那么,PC端(Windows)桌面应用,又改如何处理呢? ...

  2. python 使用多进程打开多个cmd窗口,并在子进程结束之后关闭cmd窗口

    额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口 主要是我突发奇想想装逼; 如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法 ...

  3. 让bat批处理后台运行,不显示cmd窗口(完全静化)

    背景:由于我有某云的服务器(win server), 上面挂有好几个程序, 为了更好的监控他们, 我使用了一个最笨的方法, 就是下面的方法. 实现:我要监控的程序有三个, 成为ABC吧, 下面先把三个 ...

  4. bat批处理文件运行时隐藏cmd窗口

    想让bat运行时隐藏cmd窗口,最好的方法是使用vbs文件实现, 1.新建一个文本文档,改名为123.vbs,编辑内容: set ws=WScript.CreateObject("WScri ...

  5. 运行bat时隐藏cmd窗口

    运行bat时隐藏cmd窗口 新建一个shrjj.vbs文件,文件内容为: Set ws = CreateObject("Wscript.Shell") ws.run "c ...

  6. cmd 窗口中运行 Java 程序

    1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...

  7. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 前言 在 python 开发中,有时候想通过cmd窗口来和用户交互,比如显示信息之类的,会比自己创建 GUI 来的方便,但是随之而 ...

  8. 不显示cmd窗口运行jar包

    今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...

  9. window的cmd窗口运行git

    般情况下,我们在 Window 下安装好 git 后,在运行里面打开 cmd 窗口,在里面直接运行 git --version ,会提示“不是内部或外部命令,也不是一个可运行的程序”. 要想在cmd窗 ...

随机推荐

  1. Hbase原理(转学习自用)

    一.系统架构 从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemStore.Stor ...

  2. CentOS 7 网卡注释

    TYPE=Ethernet # 网络类型为:EthernetPROXY_METHOD=none # 代理方式:关闭状态BROWSER_ONLY=no # 只是浏览器:否BOOTPROTO=static ...

  3. JSF学习实战

    JSF是什么? JSF(JavaServer Faces)它是一个基于服务器端组件的用户界面框架. 它用于开发Web应用程序.它提供了一个定义良好的编程模型,由丰富的API和标签库组成.JSF API ...

  4. NOIP初赛篇——05计算机语言

    程序 ​ 程序就是一系列的操作步骤,计算机程序就是由人实现规定的计算机完成某项工作的操作步骤.每一步骤的具体内容能够理解的指令来描述,这些指令告诉计算机"做什么"和"怎么 ...

  5. linux安装ftp步骤

    1,查看是否安装了FTP:rpm -qa |grep vsftpd 2,如果没有安装,可以使用如下命令直接安装 yum -y install vsftpd 默认安装目录:/etc/vsftpd 3,添 ...

  6. uber_go_guide解析(二)

    前言 接上回 正文 错误消息 Go中声明错误有几种方式 errors.New() 简单的声明静态字符串信息的错误 fmt.Errorf 可以格式化插入信息的错误 自己实现 Error() 方法 使用e ...

  7. Go语言从入门到放弃(四)

    前言 有段时间没摸Go语言了,最近B站的Go语言泄露挺火的. 还差的很远呐 学无止境 本章主要介绍一些零碎的小知识点 变更记录 # 19.4.30  起笔 # 19.4.30  增加代码打包步骤 正文 ...

  8. 解决Tengine健康检查引起的TIME_WAIT堆积问题

    简介: 解决Tengine健康检查引起的TIME_WAIT堆积问题 一. 问题背景 "服务上云后,我们的TCP端口基本上都处于TIME_WAIT的状态"."这个问题在线下 ...

  9. Java Mybatis快速入门之基本使用

    目录 搭建环境 编写 Mybatis 核心配置文件 pom导出资源失败 测试 搭建环境 新建Maven项目 导入Maven依赖 <dependencies> <!--mysql驱动- ...

  10. 【Linux】cron

    每五分钟执行  */5 * * * * 每小时执行     0 * * * *      0 */1 * * *   效果相同 每天执行        0 0 * * * 每周执行       0 0 ...