前言:
由于之前物理机重装,导致好多右键打开的方式都没有了,习惯了之后突然消失会非常难受,加上需要的文件太多懒得重新装,所以当时就没关
直到今天学习到注册表,才想到这个问题,于是写了一个小的py来解决此问题
流程:
第一:找到对应的注册表信息
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes*\shell
旗下的才是名字,这里对应的应是项目名字,在打开文件时候没有显示
第二:添加一个项目并写入默认值(默认值为右键显示的字符串)
第三:在新添加的项目里面再新建一个项(项名为command,强制名字),将项的默认值改为路径,并且在后面加上’ %1’(注意有空格)
保存刷新测试,即可成功
代码流程:
懂得以上流程之后,开始写代码
首先导入模块,win32api与win32con
保存下操作路径key
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,‘SOFTWARE\Classes\*\shell’,0, win32con.KEY_READ)
在新建项目与默认项值
win32api.RegSetValue(key, name, win32con.REG_SZ, open_name)
在新建项目里面再新建一个名字为command的项,默认值为路径+‘ %1’
win32api.RegSetValue(key,name+’\command’, win32con.REG_SZ, comm_values + r’ %1’)
关闭key
win32api.RegCloseKey(key)
总代码:
import win32api,win32con
print('设置文件右击可打开方式')
name = input('输入设置名字:')
open_name = input('输入右击显示名字:')
comm_values = input('输入文件路径:')
#打开右键打开方式
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
'SOFTWARE\\Classes\\*\\shell',0, win32con.KEY_READ)
#设置注册表名字(name)
#设置右键打开显示的名字(open_name)
win32api.RegSetValue(key, name, win32con.REG_SZ, open_name)
#设置第二级coomad的项值(comm_values)
win32api.RegSetValue(key,name+'\\command', win32con.REG_SZ, comm_values + r' %1')
win32api.RegCloseKey(key)
说明
一定注意要使用管理员权限打开py文件
注册表修改:
https://www.cnblogs.com/hester/p/5167061.html
仅供参考,如有不足,欢迎指正。