Mar*_*ser 8 registry installer environment-variables visual-studio
嘿,我想使用Windows环境变量作为注册表项的值.不幸的是我不能简单地写出类似的东西%systemroot%\system32\MyScreensaver.scr.
你可以猜到,我想将一些reg值指向我自己的应用程序,例如自动启动和屏幕保护程序以及其他一些东西.
有任何想法吗?
Windows注册表本身支持REG_EXPAND_SZ注册表值类型.
只需使用REG_EXPAND_SZ而不是REG_SZ在想要在注册表键值中嵌入环境变量时使用.
以下是访问a的C#代码示例,REG_EXPAND_SZ并自动处理扩展:
var registry = Registry.CurrentUser.OpenSubKey("Environment");
var temp = registry.GetValue("TEMP") as string;
Run Code Online (Sandbox Code Playgroud)
以下是创建可扩展注册表值的示例:
registry.SetValue("TEMP", @"%USERPROFILE%\AppData\Local\Temp", RegistryValueKind.ExpandString);
Run Code Online (Sandbox Code Playgroud)
其他平台或脚本语言有其他机制来支持这一点.这是Win32的低级描述REG_EXPAND_SZ:
您可以使用Windows Installer 格式化的类型.例如,您的注册表值可以是:
[%SystemRoot]\system32\MyScreensaver.scr
Run Code Online (Sandbox Code Playgroud)
这样,Windows Installer将在安装期间自动解析环境变量.
| 归档时间: |
|
| 查看次数: |
21518 次 |
| 最近记录: |