将右键单击目标传递给右键菜单中的上下文相关应用程序

将右键单击目标传递给右键菜单中的上下文相关应用程序

我想在 Windows 7 中制作一个右键单击上下文菜单选项,该选项对上下文敏感,并且可以将特定文件/文件夹的名称传递给 shell 脚本。

我知道这一定是可能的 - 例如如果你有一个 7zip 文件,你可以右键单击它,然后说“在此处提取”,然后目标(.7z 档案)就会以某种方式传递给 7zip 程序。

具体来说,我有一个脚本,它接受一个 .c 文件并将其填充到 LaTeX 列表中,然后运行 ​​pdflatex 以生成格式良好的文件以供读取。但是,我必须将文件指定为命令行参数。我想要做的是,这样我就可以右键单击文件并自动运行此脚本,将右键单击目标的路径自动传递到命令行参数中。

答案1

欢迎来到超级用户!

这将需要注册表编辑才能完成,并且取决于您是否要为所有文件、仅为特定扩展名的文件、文件夹或两者添加此项。

打开注册表编辑器并导航到HKEY_CLASSES_ROOT。您将在这里看到一堆文件扩展名 - 这是控制上下文菜单的内容。

无论将该菜单项附加到什么,添加处理程序的过程都是相同的,重要的是将其放在注册表中的什么位置。

流程如下:

  1. shell在您要添加的事物的键下创建一个新键。
  2. 如果您希望此菜单项有一个图标,请添加一个名为Icon您刚刚创建的键的字符串,并以图标的路径作为值。
  3. 添加密钥在下面您创建的项目名为command
  4. 修改此项下的(默认)条目以指向您要打开的脚本,并在"%1"传递给程序的文件名应在其命令行中的位置添加。

至于这个新菜单项应该放在哪里?如果您想让它显示...

  • 对于某个扩展名的所有文件,将其放在匹配的扩展名键下(如果不存在,可以创建一个)。
  • 对于所有地方的所有文件,将其放在*键下
  • 对于所有目录,将其放在Directory键下。

相关内容