介绍
用程序打开文件夹分两种,针对两种方式,网上都有注册表的添加方法
on folder
在文件夹上,先左键点击文件夹选中,再右键点击文件夹
注册表中创建项HKEY_CLASSES_ROOT\Folder\shell\Typora
,设置默认值用 Typora 打开
,在项中添加字符串值,名为icon
,值为程序路径,例如我的是"C:\Users\39585\AppData\Local\Programs\Typora\Typora.exe"
创建项HKEY_CLASSES_ROOT\Folder\shell\Typora\command
,设置默认值为"C:\Users\39585\AppData\Local\Programs\Typora\Typora.exe" "%1"
大概是这样
完全没问题!
in folder
在文件夹内部,双击进入文件夹,在空白地方右键
注册表结构类似,只不过根目录是HKEY_CLASSES_ROOT\Directory\Background\shell
,参数传递是%V
而不是%1
,下面直接截图
图标已经出来了
打开发现什么都没有
如果你也是跟着网上教程做的,到这里估计和我一样懵逼,下面验证一下参数传递是否有误(可以跳过直接看解决方法)
原因查找
写了一段python代码,验证一下参数传递有没有问题
# D:\test\print_args.py
import sys
# 打印参数
print(sys.argv)
input()
将in folder的command替换成"C:\Users\39585\miniconda3\python.exe" "D:\test\print_args.py" "in folder test" "%V"
执行结果,看起来似乎没问题,文件夹路径也传进去了
再把on folder的command替换成"C:\Users\39585\miniconda3\python.exe" "D:\test\print_args.py" "on folder test" "%1"
看看有什么区别
啊这,路径完全没有区别,on folder能打开,in folder却不能
我能做的只有这些了,原因没找到,如果有知道原因的大佬麻烦评论区告诉我
虽然没找到原因,但是找到解决方法了,看下一节
解决方法
在command默认值的%V
的V
后面加一个左斜杠/
,整个值变成,"C:\Users\39585\AppData\Local\Programs\Typora\Typora.exe" "%V/"
,如图
打开测试
完事!
如有问题,欢迎交流!