跳到主要内容

如何给右键添加任何启动程序

· 阅读需 11 分钟

小白方法

下载各种计算机管理软件或者右键管理软件,中途被恶意捆绑安装了一大堆,花里胡哨中迷失了方向,最后还不能达到预期效果。

别说小白,我就试过,用什么 360 右键管理等等,大多数情况下根本没个卵用。

本篇文章将教你如何在十分钟内管理好你的右键,并实现我今天要实现的目标,在右键中添加“在此处打开 Typora”选项。

目前右键效果截图:

image-20200815111115810

可以看到,是没有这一选项的。

解决方案

首先,我们看这个右键,比如通过 Code 打开(注意有空格),其实就是我们想要实现的目标,只不过我们想要打开自己想打开的某个软件,于是我们可以先看一下 VSCode 是怎么做到的。

打开注册表

Windows + R,输入regedit,回车后弹窗点击,顺利打开注册表,如图所示。

image-20200815111458364

搜索同类目标

这一步是关键,很多教程只讲具体的方法,但不讲方法论,但不能怪他们,很多中国的程序员其实根本没有所谓的方法论,要么是搜索党,要么是伸手党,稍微有些技术的,我们就看不见了(被收官,或者属于沉默寡言的黑客之类)。

我们尝试,搜索通过 Code 打开这几个字。

image-20200815111806503

我们得到了如下结果,这个结果很有意思。

image-20200815111908441

解读如下:

  1. 首先这是在HKEY_CLASSES_ROOT下搜索到的,ROOT这个名字对于程序员来说实在是再熟悉不过了,一看就很靠谱的样子。
  2. 接着是*,星号其实程序员也不陌生,就是通配符的意思,因此也就意味着这里的设置对应着通用的情况。
  3. 再接着就是shell,linux 玩家对此也是了然如胸,一般属于命令行之类的操作。
  4. 最关键的,是其他几个选项,我们看到了有各种Open with,还全是JetBrains家的,比如编写 C/C++语言的 Clion,编写 Java 语言的 IDEA,编写 python 语言的 PyCharm 和编写 JS 语言的 WebStorm,当然了这是因为我安装了这些软件,然后他们自动写入了注册表,毕竟大厂的软件啥都考虑到了。对于更加小众、独立的软件就暂时不支持这么牛哄哄的底层操作了(或者不敢,怕说流氓)。

现在,我们主动赋予它们绑定我们系统的权利

摸索、总结设定的方式

我们多点几下这些大厂的软件,看看它们在注册表中展现的形式是怎样的。

我随便点了两个不同厂商的,PyCharm 和 VsCode 的设定都出奇地类似:

  • 一个(默认)项,数据值是文件系统中显示的操作命令名
  • 一个 Icon 项,数据值是程序的启动路径
  • 一个 command 子文件夹

image-20200815112626518

image-20200815112642876

这里要注意的是,虽然类型有REG_SZREG_EXPAND_SIZE两种,但从字面意思上来看,其实应该都能达到同样的效果,我们就用默认的REG_SZ了。

再看它们 command 子文件夹的设定方式。

可以看到,数据值就是在程序启动路径后面跟上%1而已。

image-20200815112953361

image-20200815113004065

备注,这里的数据值都上了引号,是因为当做命令行时,由于程序路径存在空格,所以需要用引号包围防止出错。而上面的那个 Icon 的数据值没有包是因为直接把路径当做了一个变量。

开始实践!

一分钟内,我们仿佛就知道了如何办了,难道不是吗?

Typora程序为例。

  1. 新建一个文件夹叫MyTypora(取名明显是任意的),即点击shell,右键新建(“项”等价于文件夹)。 image-20200815113432812
  2. MyTypora下,新建一个字符串值,就是默认值。 image-20200815113609568
  3. 在默认值上双击,输入想显示的名字(显然也是任意的)。 image-20200815113718651
  4. 再新建一个字符串值,名字取名为Icon,这个名字还是不能改的,然后输入程序的启动路径。 image-20200815113814687
  5. 要找到程序的启动路径,可以这样,在 win10 内搜索到应用程序,右键打开文件位置,它会打开快捷方式所在的位置,接着在快捷方式上右击再次选择文件位置,就能到达实际启动路径了。接着复制该程序的路径,用\符号切割,得到C:\Program Files\Typora\Typora.exe image-20200815113906341 image-20200815114037415 image-20200815114143173
  6. 将路径填回注册表。 image-20200815114239484
  7. 最后一步,在文件夹下新建一个command子文件夹(或者叫),将路径复制加上引号后,紧跟一个%1image-20200815114420415

开始验证!

  1. 验证文件夹内右击是否成功

    image-20200815114615301很遗憾,文件夹内并未出现Typora的字样。

  2. 验证文件夹上右击是否成功同上,未成功。

  3. 验证文件上右击是否成功 image-20200815114730400 可以看到,已经成功。

进一步解决方案

对解决方案的总结分析

很明显,windows 对文件、文件夹、文件管理器背景(空白处)等(大胆猜测桌面上也是其中一项)做了多处不同的设定,所以我们需要一一设定。

我目前的需求主要有两个:

  1. 右键文件管理器空白处能够显示在此处打开Typora
  2. 右键文件夹能够显示使用Typora打开此文件夹

另一个需求使用Typora打开此文件我已经通过 windows 的默认应用程序实现。

因此,我们需要进一步实现这两个需求。

实现文件夹背景右键添加

再次打开Ctrl + F搜索框,还是用哪个VS Code搜索,得到如下结果。

image-20200815115558488

很明显,在这里集中设定文件夹背景的右键项。

仿照之前的解决方案,我们实现Typora的右键添加。

image-20200815115750325

再仿照 VS Code 的 command 设定,实现 Typora 的 command。

文件夹背景打开的命令符号是`%V`。

image-20200815115834383

image-20200815115908966

实现文件夹右键添加

同上,再次搜索。

可以看到,在这个Directory文件夹下有个shell,确认过眼神,是我们的最后一步了!

image-20200815120037224

配置同上,也是默认项+Icon 项+command 项(也是%v)。

开始验证!

  1. 验证文件夹背景右键 image-20200815120507359 成功!
  2. 验证文件夹右键 image-20200815120537109 成功!

至此,全部的验证均已通过。

引申与总结

关于图标

这里注意的是,图标和我们平时所说的图片不一样,图标都是程序打包时程序内部预设的 icon,所以我们新建 icon 项后填的其实是一个.exe文件路径,而不是.jpg或其它。

关于路径

我经常有复制一个文件绝对路径的需求,但是 windows 资源管理器默认只能复制文件名和导航地址栏(即文件夹地址),我们需要自己拼接,这点体验很不好。

所以我新建了一个右键复制绝对路径的项,如下。

image-20200815121124240

它的 command 项略有点复杂,使用了 vb 的命令。

image-20200815121151405

我复制如下,供有需求的朋友自行配置。

mshta vbscript:clipboarddata.setdata("text","%1")(close)

同样地,再设置一下文件夹的拷贝项。

image-20200815121410128

image-20200815121422962

命令行和上面是一样的。

关于意义

其实看到最后会发现,这就是一个脚本完事的事

没错,话是这么说,但谁都知道,这个年代,还有谁有时间或者有兴趣去学 windows 的脚本编程呢?

我从论坛学到一个流程的基本设定,怎么打开注册表,怎么修改表项,再根据自己的经验与理解,实现了更多自定义的设置,这就是意义。

我不用去专门再学一门编程语言,但我对它的理解却更甚了,日常工作的体验更棒了,并且有信心能够解决未来遇到的更多难题,这就是全部的意义。

Thanks for your attention.