需事先打开记事本,再运行下面脚本

# encoding: utf-
import win32api
import win32gui
import win32con print("Hello,world!") def find_idxSubHandle(pHandle, winClass, index=):
"""
已知子窗口的窗体类名
寻找第index号个同类型的兄弟窗口
"""
assert type(index) == int and index >=
handle = win32gui.FindWindowEx(pHandle, , winClass, None)
while index > :
handle = win32gui.FindWindowEx(pHandle, handle, winClass, None)
index -=
return handle def find_subHandle(pHandle, winClassList):
"""
递归寻找子窗口的句柄
pHandle是祖父窗口的句柄
winClassList是各个子窗口的class列表,父辈的list-index小于子辈
"""
assert type(winClassList) == list
if len(winClassList) == :
return find_idxSubHandle(pHandle, winClassList[][], winClassList[][])
else:
pHandle = find_idxSubHandle(pHandle, winClassList[][], winClassList[][])
return find_subHandle(pHandle, winClassList[:]) """输出phandle的所有子控件"""
def p_sub_handle(phandle):
handle = -
while handle != :
if handle == -:
handle =
handle = win32gui.FindWindowEx(phandle, handle, None, None)
if handle != :
className = win32gui.GetClassName(handle)
print(className) """
记事本实例
"""
#获取实例
notepadHhandle = win32gui.FindWindow("Notepad", None)
print ("%x" % (notepadHhandle))
#获取句柄
editHandle = find_subHandle(notepadHhandle, [("Edit",)])
print ("%x" % (editHandle)) """修改edit中的值"""
win32api.SendMessage(editHandle, win32con.WM_SETTEXT, , "") command_dict = { # [目录的编号, 打开的窗口名]
"open": [, u"打开"]
} """操作菜单"""
menu = win32gui.GetMenu(notepadHhandle)
menu = win32gui.GetSubMenu(menu, )
cmd_ID = win32gui.GetMenuItemID(menu, command_dict["open"][])
if cmd_ID == -:
print("没有找到相应的菜单")
else:
print ("菜单id:%x" % (cmd_ID))
win32gui.PostMessage(notepadHhandle, win32con.WM_COMMAND, cmd_ID, )

python 操作记事本的更多相关文章

  1. python操作word(改课文格式)【最终版】

    python操作word的一些方法,前面写了一些感悟,有点跑题,改了下题目,方便能搜索到.心急的可以直接拉到最后看代码,我都加了比较详细的注释. 从8.3号早上9点,到8.8号下午5点半下班,终于把这 ...

  2. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  3. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  4. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  5. Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  6. Python操作Mysql之基本操作

    pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...

  7. Python操作RabbitMQ

    RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消 ...

  8. python操作日期和时间的方法

    不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...

  9. Python—操作redis

    Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...

随机推荐

  1. CAT Caterpillar ET is really a exceptional obd2 solution

    As a excellent obd2 solutions,Heavy Duty Diagnostic CAT Caterpillar ET Diagnostic Adapter features a ...

  2. NodeJS遍历文件生产文件列表

    本文实例讲述了NodeJS遍历文件生产文件列表功能.分享给大家供大家参考,具体如下: 功能需求:在工作中我们可能经常需要知道项目中静态文件列表发布,一个一个去检索写,那就太苦逼了. 要想知道里面的文件 ...

  3. AJAX异步请求,局部刷新

    AJAX异步请求,局部刷新 window.onload=function(){ //dom事件,页面加载完成执行如下函数 doGetObjects(); } function doGetObjects ...

  4. EditPlus5.0注册码

    EditPlus5.0注册码 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAW EditPlus3.x注册码 EditPlus注册码生成器链接 http://ww ...

  5. jquery的$post方法不发送空数组的解决办法

    问题:jquery里的ajax在提交post请求时,如果数据里有一个空数组,则这个空数组不会提交上去 技术上的解决办法如下: 源代码: var params = { type : , ids:[] } ...

  6. pagehelper调用mybatis报错java.lang.NoSuchMethodError:org.apache.ibatis.reflection.MetaObject.forObject

    最近在升新的基础框架到spring cloud,启动时pagehelper报错,如下: java.lang.NoSuchMethodError:org.apache.ibatis.reflection ...

  7. 【题解】Luogu P4979 矿洞:坍塌

    原题传送门:P4979 矿洞:坍塌 这是某场膜你赛的题,最后我一百零几分rank三十几滚粗 这是我唯一ac的一题 这题比较简单qaq 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看 ...

  8. Bugku-CTF之flag.php(点了login咋没反应)

      Day2   flag.php(点了login咋没反应)   地址:http://123.206.87.240:8002/flagphp/      

  9. bzoj 2434 阿狸的打字机 - Aho-Corasick自动机 - 树状数组

    题目传送门 传送站I 传送站II 题目大意 阿狸有一个打字机,它有3种键: 向缓冲区追加小写字母 P:打印当前缓冲区(缓冲区不变) B:删除缓冲区中最后一个字符 然后多次询问第$x$个被打印出来的串在 ...

  10. java开发注意点之String使用equals和==的区别

    "=="操作符的作用 1.用于基本数据类型的比较 2.判断引用是否指向堆内存的同一块地址. equals所在位置: 在Object类当中,而Object是所有类的父类,包含在jdk ...