获取注册表KEY中值名称的值数据

时间:2013-03-30 18:10:06

标签: javascript javascript-events vbscript

我有以下的javascript。我想获取特定注册表项中的值名称的数据。例如,如果密钥为HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC且值名称为InstallDir,我如何获取InstallDir的数据(即路径,即D:\Program Files\VideoLAN\VLC)。如何在JavaScript或VBScript中获取此路径?

<html>
<head>
<script language="JavaScript" type="text/javascript">
  MyObject = new ActiveXObject( "WScript.Shell" )
  function Goto()
  {
    var bat= MyObject.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC\\InstallDir");
    MyObject.Run("bat/GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt") ;
  }
</script>
</head>
<body>
<button onclick="Goto()">Run BatFile</button>
</body>
</html>

正如您所看到的,我希望将InstallDir的文件路径保存在变量(bat)中以运行批处理文件(GoToLine2.bat),该文件位于{{的值数据中1}}(即InstallDir)。你能否告诉我如何才能获得这条路径,以便我不必使用

D:\Program Files\VideoLAN\VLC

提前致谢。

2 个答案:

答案 0 :(得分:0)

在某些语言中,您可以使用变量插值/替换将变量的内容放入字符串文字中:

perl -e 'my $v = "c"; my $s = "${v}x"; print $s, "\n";'
cx

VBScript和J(ava)脚本都没有此功能:

% v = "c" // given variable v containing "c"
c
% s = "vx" // j(ava)script does not interpolate
vx
% s = v + "x" // so use concatenation
cx

另一种选择是使用替换而不是连接:

>> v = "c"
>> s = Replace("$vx", "$v", v)
>> WScript.Echo s
>>
cx

答案 1 :(得分:0)

MyObject.Run(bat + "\\GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt");

好的,我觉得我错了。该路径有空格,因此您需要用引号括起来,即:

MyObject.Run("\"" + bat + "\\GoToLine2.bat\" 10 /examples/helloWorld/helloWorld.txt");