右键菜单中的批处理文件

右键菜单中的批处理文件

我正在制作一个批处理文件,用于加密信息。我这样做是为了当我右键单击对象并单击“测试”按钮时,它会运行批处理文件。

regedit添加了

Computer\HKEY_CLASSES_ROOT\*\shell\Test\command

命令的数据是

C:\Users\%username%\Desktop\encrypt.bat

我需要对数据(在我添加的注册表项中)做什么以及它在我的变量中存储在什么位置?

答案1

您需要将要在该类型上启动的脚本与文件类型关联起来。在 Windows 上,所有这些都基于扩展名(至少在 XP 上如此,我不知道 7 是否如此,但我怀疑它是否发生了变化)。假设您的文件扩展名为“.abc”,您的应用程序是:

c:\program files\dummy\process.bat

(我暂时删除了该变量,我不确定它在 .reg 文件中的行为如何)

因此,只需编辑包含以下内容的 config.reg 文本文件:

Windows Registry Editor Version 5.00

; the extension .abc gets associated with a file type
[HKEY_CLASSES_ROOT\.abc]
@="abc-file"

; the file-type gets a name (that appears in explorer in field "type")
[HKEY_CLASSES_ROOT\abc-file]
@="foo file"

; What will appear in the contextual menu when selecting an .abc file
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1]
@="--- Process ! ----"

; What to do with it
; here, %1 is the file given as argument of the script
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1\command]
@="\"c:\\program files\\dummy\\process.bat\" \"%1\""

最后将其导入。就完成了。

补充评论:

  • 所有奇怪的引号和反斜杠都是为了正确处理带空格的名称。是的,我现在知道,文件名中没有人有空格。。还是有?无论如何,这种情况确实会发生!
  • 当然,您可以为一个文件类型设置多个命令。只需复制 .reg 的最后两个键 (cmdname-1 ==> cmdname-2)
  • 您还可以将不同的文件扩展名与同一文件类型关联。例如,HTML 文件可以有 .htm 或 .html
  • 您甚至可以将操作与文件夹关联起来。将文件类型替换为“文件夹”
  • 提供“卸载”功能很有用。只需创建另一个 reg 文件并在创建的键前面加上“-”即可。

相关内容