我想使用Jscript在AppCompatFlagsRegistryKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\"
的注册表中添加一个条目。但是,我要添加的条目是REG_SZ
,其名称带有反斜杠本身
例如:
name = "C:\Program Files\vendor\myPackage.exe"
和Data = "RUNASADMIN"
当我使用:WshShell.RegWrite( AppCompatFlagsRegistryKey + name, value, type);
结果是只有名称的最后一部分(package.exe)被视为叶子。我试过了
name = "\" + "C:\Program Files\vendor\myPackage.exe" + "\"
但这没有用。有什么建议是正确的方法吗?
答案 0 :(得分:1)
您必须使用\
转义文字字符串中的每个\\
,以避免js将\?
视为转义序列;
name = "C:\\Program Files\\vendor\\myPackage.exe";
修改强>
似乎你不能用RegWrite
做到这一点,这是WMI的一种方式:
var AppCompatFlagsRegistryKey = "Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers";
var name = "C:\\Program Files\\vendor\\myPackage.exe";
var Data = "RUNASADMIN";
var result;
var objRegistry = GetObject("winmgmts://./root/default:StdRegProv");
try {
result = objRegistry.SetStringValue(0x80000001 /*HKCU*/, AppCompatFlagsRegistryKey, name, Data);
} catch (e) {
alert(e.message);
result = 0;
}
alert("success: " + (result == 0));