python实现应用程序在右键菜单中添加打开方式功能


Posted in Python onJanuary 09, 2017

最近项目组开发的一个小工具想要在右键菜单中添加打开方式,以有道云笔记为例进行了需求拆解和代码编写

1.需求拆解:

如何实现手动添加右键菜单的打开方式:

Step1:打开注册表编辑器,Win+R->输入 “regedit”

python实现应用程序在右键菜单中添加打开方式功能

Step2:在HKEY_CLASSES_ROOT/*/shell (或者HKEY_LOCAL_MACHINE/SOFTWARE/Classes/*/shell ,两个目录是一样的) 添加一个key:YNote,然后在该项中新建项command,然后再编辑字符串,添加应用程序的路径,最后再路径和名称的后面加上空格和“%1”,然后在右键就可以找到YNote的打开方式

python实现应用程序在右键菜单中添加打开方式功能

2.代码实现

Method1:通过_winreg模块实现:

import _winreg
from _winreg import KEY_ALL_ACCESS
with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Classes\*\shell") as key:
print key
newKey = _winreg.CreateKeyEx(key,"YNote",0,KEY_ALL_ACCESS)
sub_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\Classes\*\shell\YNote")
newsubKey = _winreg.CreateKey(sub_key,"command")
_winreg.SetValue(newsubKey,"(Default)",1,"\"C:\Program Files (x86)\Youdao\YoudaoNote\YoudaoNote.exe\" \"%1\"")

Method2:通过win32api和win32con模块实现

import win32api
import win32con
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Classes\*\shell")
newKey = win32api.RegCreateKey(key,"YNote")
sub_key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Classes\*\shell\YNote")
newsubKey = win32api.RegCreateKey(sub_key,"command")
win32api.RegSetValue(newsubKey,"(Default)", win32con.REG_SZ,"\"C:\Program Files (x86)\Youdao\YoudaoNote\YoudaoNote.exe\" \"%1\"")

以上所述是小编给大家介绍的python实现应用程序在右键菜单中添加打开方式功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用python 获取进程pid号的方法
Mar 10 Python
python套接字流重定向实例汇总
Mar 03 Python
简述Python中的进程、线程、协程
Mar 18 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
python opencv 简单阈值算法的实现
Aug 04 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
浅析Python面向对象编程
Jul 10 Python
Python基于字典实现switch case函数调用
Jul 22 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 #Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 #Python
Python中的sort()方法使用基础教程
Jan 08 #Python
Python守护进程和脚本单例运行详解
Jan 06 #Python
Python 基础知识之字符串处理
Jan 06 #Python
详解Python中的相对导入和绝对导入
Jan 06 #Python
Python中取整的几种方法小结
Jan 06 #Python
You might like
php Memcache 中实现消息队列
2009/11/24 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
JS动画效果代码3
2008/04/03 Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
自荐书封面下载
2013/11/29 职场文书
乔迁之喜主持词
2014/03/27 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
青年志愿者活动感想
2015/08/07 职场文书