读取注册表没有64位重定向
JavaScript: Read registry without 64bit redirect?
我的64位系统上有以下注册表项:
HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows'CurrentVersion'Uninstall'CCleaner'DisplayVersion
我正试图用32位JS应用程序阅读它,但我会自动重定向到:
HKEY_LOCAL_MACHINE'SOFTWARE'Wow6432Node'Microsoft'Windows'CurrentVersion'Uninstall'CCleaner'DisplayVersion
(不存在)
下面是我的代码:var WshShell = new ActiveXObject("WScript.Shell");
var installedVersion = WshShell.RegRead("HKEY_LOCAL_MACHINE''SOFTWARE''Microsoft''Windows''CurrentVersion''Uninstall''CCleaner''DisplayVersion");
那么我如何在64位操作系统上禁用此重定向(用于RegRead, RegWrite和RegDelete)?
有两种方法:
-
在32位Windows script Host (
%windir%'SysWOW64'wscript.exe
)下运行脚本。在脚本代码中,使用不带Wow6432Node
的键名:HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows'CurrentVersion'Uninstall'CCleaner'DisplayVersion
-
使用WMI
StdRegProv
类读取注册表,并使用__ProviderArchitecture
标志强制32位模式。下面是一个例子:var HKEY_LOCAL_MACHINE = 0x80000002; var sValue = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE''Microsoft''Windows''CurrentVersion''Uninstall''CCleaner", "DisplayVersion", 32); // <------------ WScript.Echo(sValue); // Reads a REG_SZ value from the local computer's registry using WMI. // Parameters: // RootKey - The registry hive (see http://msdn.microsoft.com/en-us/library/aa390788.aspx for possible values). // Key - The key that contains the needed value. // Value - The value to get. // RegType - The registry bitness: 32 or 64. function ReadRegStr (RootKey, KeyName, ValueName, RegType) { var oCtx = new ActiveXObject("WbemScripting.SWbemNamedValueSet"); oCtx.Add("__ProviderArchitecture", RegType); var oLocator = new ActiveXObject("WbemScripting.SWbemLocator"); var oWMI = oLocator.ConnectServer("", "root''default", "", "", "", "", 0, oCtx); var oReg = oWMI.Get("StdRegProv"); var oInParams = oReg.Methods_("GetStringValue").Inparameters; oInParams.Hdefkey = RootKey; oInParams.Ssubkeyname = KeyName; oInParams.Svaluename = ValueName; var oOutParams = oReg.ExecMethod_("GetStringValue", oInParams, 0, oCtx); return oOutParams.SValue; }
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- 在phonegap应用程序内部重定向不起作用
- CORS-重定向到第二个GET正在接收的页面
- AJAX不会在文件上传后重定向到网页-POST方法
- 重定向时角度刷新浏览器
- 通过链接重定向不;我不在jstree中工作
- 根据select选项元素将表单重定向到不同的URL
- 通过JQuery重定向到另一个页面
- 重定向到“父窗口”
- 重定向iFrame中的父URL
- PHP-如何重定向到同一页面并更改DOM's
- chrome.tabs.update() 重定向到 'chrome-extension://invalid/'
- 我们如何在不更改url的情况下使用锚点点击从一个页面重定向到另一个页面
- 当用户在选择框中选择选项时,使用window.location.href重定向用户只会更改导航器中URL的最后一位
- 读取注册表没有64位重定向