Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including @paulcbetts/winreg with all npm packages installed. Try it out:

var winreg = require("@paulcbetts/winreg")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@paulcbetts/winreg v0.0.12

provides access to the windows registry through the REG tool


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);
    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:


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


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free