要为程序添加右键菜单打开方式,则需要修改注册表,具体的修改方法可参见【转】Windows右键菜单设置与应用技巧。
在Python中,提供了一个内置的_winreg模块用于操作Windows注册表。
以下展示了使用Python的_winreg模块修改Windows注册表,从而实现为指定的程序添加右键菜单打开方式的代码:
# -*- coding: utf-8 -*- ''' 为程序添加右键菜单打开方式 ''' import _winreg # 此处以IE浏览器为例 # 通过修改代码中prog_name和prog_path的值,可以指定任意的其他程序 prog_name = '用IE打开' # 程序名称(即右键菜单中显示的名称) prog_path = r'C:\Program Files\Internet Explorer\IEXPLORE.EXE' # 程序路径(即可执行文件所在路径) # 打开名称为“HEKY_CLASSES_ROOT\*\shell”的键key key = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, r'*\\shell') # 为键key新建名称为prog_name的子键, # 并设置其数据为REG_SZ(字符串值)类型的prog_name((&I)表示指定快捷键为I) _winreg.SetValue(key, prog_name, _winreg.REG_SZ, prog_name + '(&I)') # 打开名称为prog_name的子键prog_key prog_key = _winreg.OpenKey(key, prog_name) # 为键prog_key新建名称为'command'的子键, # 并设置其数据为REG_SZ(字符串值)类型的prog_path + ' %1' _winreg.SetValue(prog_key, 'command', _winreg.REG_SZ, prog_path + ' %1') _winreg.CloseKey(prog_key) # 关闭键prog_key _winreg.CloseKey(key) # 关闭键key
执行上面的Python代码后,运行“regedit”命令打开Windows的注册表编辑器,可以看到“HKEY_CLASSES_ROOT\*\shell”节点下新增了“用IE打开\command”项:
在任意一个文件上面点击右键,可以看到弹出的菜单中新增了“用IE打开(I)”项:
此时,用鼠标点击“用IE打开(I)”,或者直接按下快捷键I,都将会用IE浏览器打开当前文件。