node module that provides access to the Windows Registry through the REG commandline tool
npm install winreg
Let's start with an example. The code below lists the autostart programs of the current user.
var Winreg = require('winreg')
, regKey = new Winreg({
hive: Winreg.HKCU, // HKEY_CURRENT_USER
key: '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' // key containing autostart programs
})
// list autostart programs
regKey.values(function (err, items) {
if (err)
console.log('ERROR: '+err);
else
for (var i in items)
console.log('ITEM: '+items[i].name+'\t'+items[i].type+'\t'+items[i].value);
});
The following options are processed by the Winreg constructor:
- host the optional hostname, must start with the '\\' sequence
- hive the optional hive id (see below), the default is HKLM
- key the optional key, the default is th root key
The key, if specified, has to start, but must not be terminated with a '\' character.
The instances of Winreg provide access to a single registry key. The hive id can be one of the following:
- HKLM HKEY_LOCAL_MACHINE
- HKCU HKEY_CURRENT_USER
- HKCR HKEY_CLASSES_ROOT
- HKCC HKEY_CURRENT_CONFIG
- HKU HKEY_USERS
Registry values are returned as objects, containing the following information:
- host the hostname, if it has been set in the options
- hive the hive id, as specified in the options
- key the key, as specified in the options
- name the name of the registry value
- type one of the types listed below
- value a string containing the value
Registry values can have one of the following types:
- REG_SZ a string value
- REG_MULTI_SZ a multiline string value
- REG_EXPAND_SZ an expandable string value
- REG_DWORD a double word value (32 bit integer)
- REG_QWORD a quad word value (64 bit integer)
- REG_BINARY a binary value
- REG_NONE a value of unknown type
Following methods are provided by instances of Winreg:
Method | Parameters | Description |
---|---|---|
values | callback | list the values under this key |
keys | callback | list the subkeys of this key |
get | name, callback | gets a value by it's name |
set | name, type, value, callback | sets a value |
remove | name, callback | remove the value with the given key |
create | callback | create this key |
erase | callback | remove this key |
Following readonly properties are provided by instances of Winreg:
Property | Type | Description |
---|---|---|
host | string | the hostname, if specified in the options |
hive | string | the registry hive |
key | string | the registry key |
path | string | this key's path |
parent | Winreg | a new Winreg instance initialized with the parent key |