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

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

1.需求拆解:

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

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

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

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\"")

时间: 2025-01-04 21:23:20

python实现应用程序在右键菜单中添加打开方式的相关文章

Win10如何在右键菜单中添加“显示/隐藏文件”选项?

随着Win10系统的发布,一些用户已经升级到Win10系统,我们在使用Win10系统时经常会找不到所需的文件,也不知道怎么回事,估计是被隐藏起来了.遇到这样的问题要如何解决?那Win10如何在右键菜单中添加“显示/隐藏文件”选项呢?现在小编就和大家说一下Win10在右键菜单中添加“显示/隐藏文件”选项的方法. 具体步骤如下: 1.打开“此电脑”,点击工具栏中的[查看]按钮: 2.在右侧通过勾选或去掉[皇冠hg0088]即可打开或关闭 显示隐藏文件了. Win10在右键菜单中添加“显示/隐藏文件”

在右键菜单中添加用Jupyter Notebook打开

在右键菜单中添加用Jupyter Notebook打开 为了把 Jupyter 的工作目录指定到某一个文件夹下,每次都要启动 CMD 终端, 然后激活 Anaconda 环境,再启动 Jupyter Notebook ,麻烦至极. 所以做了下面这个脚本,把启动 Jupyter 添加到右键菜单中,这样每次启动 Jupyter 通过点点鼠标就可以了. 新建一个文件,命名为open-with-jupyter.reg,文件编码选择gbk或gb2312不然肯能会出现乱码. 然后把下面的代码粘贴进去,保存后

JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)

需求: 在界面的右键事件中添加一个打开开发者选项的菜单(Show Dev Tools) 所以我们可以看到的是在界面上右键,会有默认的一些菜单项(前进,后退,打印,查看源码),而这些功能并不一定是我们需要的,所以我们首先要做的就是去除这些选项,参考:java cef3 如何禁止右键菜单项 同理,我们只需要在CefContextMenuHandler接口的实现类中去定制我们的菜单项即可,代码如下: public class ContextMenuHandler implements CefConte

mfc 小程序---在系统菜单中添加菜单项

1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m_pMenu->AppendMenu(MF_SEPARATOR);//添加分割线 m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单"); 补充:IDI_PECULIARMENU 为一个常数,需要在Resourece.h中宏

如何在Windows资源管理器右键菜单中 添加CMD

我们在用windows时经常需要在某个目录下执行执行一些dos命令,通常我们会在开始菜单的运行下键入:cmd,开启dos命令窗口,然后在cd到目标操作目录,每次这样操作比较麻烦.下面介绍一种直接在资源管理器直接打开dos命令窗口的小办法. 一.不选定任何目录或文件的右键菜单 1.打开"注册表编辑器" 找到 "HKEY_CLASSES_ROOT\Directory\Background\shell" 2.新建项"在命令提示符中打开" 3.在上面的项

向右键菜单中添加复制文件路径

复制文件路径本来可以按住shift 右击,不过还是有点麻烦,这里提供一种可以一次添加永久使用的方法. 打开记事本: Windows Registry Editor Version 5.00 ;文件[HKEY_CLASSES_ROOT\*\shell\copypath]@="复制文件路径" [HKEY_CLASSES_ROOT\*\shell\copypath\command]@="mshta vbscript:clipboarddata.setdata(\"text

在windows右键菜单中加入自己的程序 [转载]

原文链接: http://blog.csdn.net/marklr/article/details/4006356 在windows右键菜单中加入自己的程序 标签: windowsattributes扩展commandshell文档 2009-03-20 08:44 3369人阅读 评论(1) 收藏 举报  分类: BCB(12)  修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!).展开该根键,其下的子键主要有两种:扩展名

右键菜单中增加Notepad++选项

一般情况下,从notepad++官网下载绿色版(免安装的压缩包),解压后可以直接使用,但是鼠标右键菜单中没有notepad++选项,不是很方便.下面介绍一种手动方法将notepad++添加到鼠标右键菜单中. 假设Notepad++安装在:    C:\Program Files\Notepad++\文件完整路径:   C:\Program Files\Notepad++\notepad++.exe 1.运行regedit打开注册表:2.打开HKEY_CLASSES_ROOT\*\Shell:3.

删除桌面右键菜单中无用的菜单项

删除桌面右键菜单中无用的菜单项:使用regedit打开注册表,然后打开HKEY_CLASSES_ROOT\Directory\Background\shell键项,在其中找到你想要删除的菜单,删除即可. 其他右键菜单项的删除:http://jingyan.baidu.com/article/86112f13342b64273797879c.html 电脑左下角:开始——运行“打开”框中键入“regedit”步骤/方法一: 开始——运行里面输入: regsvr32 /u igfxpph.dll 确