我正在制作一个批处理文件,用于加密信息。我这样做是为了当我右键单击对象并单击“测试”按钮时,它会运行批处理文件。
我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 文件并在创建的键前面加上“-”即可。