首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将VBScript代码转换为javascript (即JScript)代码

将VBScript代码转换为javascript (即JScript)代码
EN

Stack Overflow用户
提问于 2014-11-13 10:49:07
回答 2查看 4.1K关注 0票数 1

如何将下面的vbscript转换为javascript?

代码语言:javascript
复制
<script type="text/vbscript">

  Function SayHello()
    MsgBox "Hello"

HKEY_LOCAL_MACHINE = "&H80000002"
uninstallRegKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
stdRegPro = "winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv"

Set objReg=GetObject(stdRegPro)

objReg.EnumKey HKEY_LOCAL_MACHINE, uninstallRegKey, arrSubKeys
MsgBox arrSubKeys

  End Function

</script>

任何帮助都很感激。

谢谢,洛克。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-16 14:20:08

你可以,如果你使用JScript (微软的Javascript的实现)和一些信息。

  1. 用JScript调用WMI方法
  2. JScript中WMI的故障

(通过googling "jscript wmi“找到)。

证据:

代码语言:javascript
复制
function showUnInstall() {
    var HKEY_LOCAL_MACHINE = 0x80000002;
    var uninstallRegKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
    var stdRegPro = "winmgmts:{impersonationLevel=impersonate}!//./root/default:StdRegProv";
    var objReg = GetObject(stdRegPro);

    var mEnumKey = objReg.Methods_.Item("EnumKey");
    var ipEnumKey = mEnumKey.InParameters.SpawnInstance_();
    ipEnumKey.hDefKey = HKEY_LOCAL_MACHINE;
    ipEnumKey.sSubKeyName = uninstallRegKey;

    var mGetStringValue = objReg.Methods_.Item("GetStringValue");
    var ipGetStringValue = mGetStringValue.InParameters.SpawnInstance_();
    ipGetStringValue.hDefKey = HKEY_LOCAL_MACHINE;
    ipGetStringValue.sValueName = "DisplayName";

    var opEnumKey = objReg.ExecMethod_(mEnumKey.name, ipEnumKey);
    if (0 === opEnumKey.ReturnValue) {
        var aNames = opEnumKey.sNames.toArray();
        for ( var i = 0; i < aNames.length; ++i) {
            ipGetStringValue.sSubKeyName = uninstallRegKey + "\\" + aNames[i];
            var opGetStringValue = objReg.ExecMethod_(mGetStringValue.name, ipGetStringValue);
            if (0 === opGetStringValue.ReturnValue) {
                WScript.Echo(opGetStringValue.sValue);
            } else {
                WScript.Echo("ERROR: GetStringValue.ReturnValue =", opGetStringValue.ReturnValue);
            }
        }
    } else {
        WScript.Echo("ERROR: EnumKey.ReturnValue =", opEnumKey.ReturnValue);
    }
}

产出:

代码语言:javascript
复制
cscript 26907078.js
7-Zip 4.65
ActiveState ActiveTcl 8.5.2.0
ERROR: GetStringValue.ReturnValue = 1
Adobe Flash Player 15 Plugin
ERROR: GetStringValue.ReturnValue = 1
CMake 2.8, a cross-platform, open-source build system
Acrobat.com
...
票数 2
EN

Stack Overflow用户

发布于 2014-11-13 10:51:34

Javascript没有访问注册表的权限。

我记得这并不完全准确。使用NPM工具在Windows上运行的Node.js but服务器确实可以访问,但只能访问运行在其上的服务器上的but服务器。但是,客户端javascript没有访问注册表的权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26907078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档