如何将同一文件类型的多个模板添加到新的上下文菜单中?

如何将同一文件类型的多个模板添加到新的上下文菜单中?

我该如何实现下图所示的效果?假设前 3 个项目是文本文件,每个文件都使用不同的文本文件模板,而第 4 个项目不使用模板,即只是一个空白文本文件。请注意,txt 只是一个例子,我想将其扩展到其他文件扩展名。

在此处输入图片描述

这个问题没有被任何答案解决如何向“新”上下文菜单添加项目?,因此我按照建议提出了一个新问题。

创建一个文件(a.txt)并放置在C:\WINDOWS\SHELLNEW中。然后进行以下测试。

使用此代码将导致创建一个扩展名为 .000 而不是 txt 的文件。

Windows Registry Editor Version 5.00

; new file type
[HKEY_CLASSES_ROOT\.000]
@="000"

; template
[HKEY_CLASSES_ROOT\.000\ShellNew]
"FileName"="a.txt"

; file type name
[HKEY_CLASSES_ROOT\000]
@="Test"

将 FileName 键添加到 .txt reg 键只允许使用 1 个模板,因为它只允许 1 个文件的路径。

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"FileName"="a.txt"

使用此代码添加了一个上下文菜单项,但它没有使用指定的模板和上下文菜单名称。

Windows Registry Editor Version 5.00

; new file type
[HKEY_CLASSES_ROOT\.000]
@="textfile"

; template
[HKEY_CLASSES_ROOT\.000\ShellNew]
"FileName"="a.txt"

; file type name
[HKEY_CLASSES_ROOT\000]
@="Test"

使用此代码将导致不出现上下文菜单项。

Windows Registry Editor Version 5.00

; new file type
[HKEY_CLASSES_ROOT\.000]
@="txt"

; template
[HKEY_CLASSES_ROOT\.000\ShellNew]
"FileName"="a.txt"

; file type name
[HKEY_CLASSES_ROOT\000]
@="Test"

答案1

我有一种方法可以做到这一点,如下所示。我假设您需要两个.txt文件模板:一个“默认”模板,另一个我称之为“脚本模板”。我认为您可以根据自己的需要进行调整。

编写一个.reg文件,其中包含(改编自这里):

; ------- .txt default ----------
; new file type
[HKEY_CLASSES_ROOT\.txt]
@="txt"

; template
[HKEY_CLASSES_ROOT\.txt\ShellNew]
"FileName"="C:\\Path\\to\\your\\template.txt"

; file type name
[HKEY_CLASSES_ROOT\txt]
@="Text File"

; ------- .txt script ----------
; new file type
[HKEY_CLASSES_ROOT\.script.txt]
@="script.txt"

; template
[HKEY_CLASSES_ROOT\.script.txt\ShellNew]
"FileName"="C:\\Path\\to\\your\\template_script.txt"

; file type name
[HKEY_CLASSES_ROOT\script.txt]
@="Script text File"

基本上,我们.script.txt为其创建一个虚假的扩展和一个模板。

此方法的唯一缺点是,您新创建的脚本文件将被命名为New Script text File.script.txt,其中包含您可能不想要的额外内容.script。但由于扩展名以 结尾.txt,因此以这种方式创建的文件将使用与 .txt 扩展名关联的任何程序打开。

相关内容