我有Windows Vista,但我想这也适用于其他版本。我想设置一个在“打开方式”上下文菜单中使用的程序。现在,我希望.exe的路径包含一个环境变量。这样,我可以移动应用程序的位置,更改相应的环境变量,然后一切正常。
该问题包括三个部分:
键入的值
HKEY_CLASSES_ROOT\Applications\myapp.exe\shell\open\command
例如,,"C:\myapp\myapp.exe" "%1"
是硬编码的,类型是REG_SZ
。我需要它的类型REG_EXPAND_SZ
,例如"%MYAPPSDIR%\myapp.exe" "%1"
。这对于内置程序来说很典型,例如%SystemRoot%\system32\NOTEPAD.EXE %1
。
密钥的类型无法更改,因此,作为诞生了REG_SZ
,所以它就存在了。
看来我无法将变量“重新生成”为REG_EXPAND_SZ
。
有没有机会做我的意思?
还有一个额外的问题,即如何在批处理文件中接收参数。
reg add "HKCR\Applications\myapp.exe\shell\open\command" /ve /t REG_EXPAND_SZ /d "\"^%MYAPPSDIR^%\myapp.exe\" \"^%1\"" /f
笔记:
%MYAPPSDIR%
由命令行解释,%
百分比字符应该由标准转义CLI
转义字符(^
脱字符号):^%MYAPPSDIR^%
;"
在数据中包含引号,请在reg
其\
前面加上转义字符(反斜杠)。例如,\"
这里是一个引号,因为该REG
命令将解释\
为紧跟其后的字符的转义符。一个例子(copy&paste
从我的管理员命令行):
C:\Windows\system32>reg query "HKCR\Applications\mspaint.exe\shell\edit\command" /ve
HKEY_CLASSES_ROOT\Applications\mspaint.exe\shell\edit\command
(Default) REG_EXPAND_SZ "%systemroot%\system32\mspaint.exe" "%1"
C:\Windows\system32>reg add "HKCR\Applications\mspaint.exe\shell\edit\command" /ve /t
REG_EXPAND_SZ /d "\"^%systemroot^%\system32\mspaint.exe\" \"^%1\"" /f
The operation completed successfully.
C:\Windows\system32>reg query "HKCR\Applications\mspaint.exe\shell\edit\command" /ve
HKEY_CLASSES_ROOT\Applications\mspaint.exe\shell\edit\command
(Default) REG_EXPAND_SZ "%systemroot%\system32\mspaint.exe" "%1"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句