node-regedit icon indicating copy to clipboard operation
node-regedit copied to clipboard

regedit.putValue():error:unsupported hive

Open lister0701 opened this issue 3 years ago • 7 comments

My Code: image image

Exception: image

I feel very strange, clearly has been modified successfully image

Brothers, please help me.

lister0701 avatar Jul 27 '22 06:07 lister0701

At /lib/helper.js line 14 you need to patch the write function to

function write(m) {
  if (m) {
    var b = module.exports.encode(m)
    debug(b)
    return stream.write(b)
  }
  return false
}
function write(m) {
+  if (m) {
    var b = module.exports.encode(m)
    debug(b)
    return stream.write(b)
+  }
  return false
}
```

gggscript avatar Jul 29 '22 07:07 gggscript

Or if you want to support falsy values, change the whole function to:

module.exports.writeArrayToStream = function(arr, stream, optionalCallback) {
	function write(m) {
		if (m) {
      var b = module.exports.encode(m)
			debug(b)
			return stream.write(b)
    }
		return false
	}

	while (arr.length) write(arr.pop())

	if (arr.length === 0) {
		stream.write(WIN_EOL, optionalCallback)
		return
	}

	stream.once('drain', function() {
		module.exports.writeArrayToStream(arr, stream, optionalCallback)
	})
}

gggscript avatar Jul 29 '22 07:07 gggscript

reverting to 5.0.0 solved it for me :)

filmerjarred avatar Aug 19 '22 00:08 filmerjarred

@lister0701 please try version 5.1.2 and let me know if it solved your problem.

kessler avatar Feb 19 '23 21:02 kessler

@kessler Hi man, sorry for bringing this back up so late, but this is still a problem in 5.1.2, I'm using Win 11 and here's my current code, I just want to list apps that start up

const promisifiedRegedit = require('regedit').promisified;

async function main() {
    const listResult = await promisifiedRegedit.list('HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run');
    console.log(listResult);
}
  
main();
```

Dufftwt avatar Dec 11 '23 16:12 Dufftwt

will look into it.

kessler avatar Dec 11 '23 16:12 kessler

@kessler Hi man, sorry for bringing this back up so late, but this is still a problem in 5.1.2, I'm using Win 11 and here's my current code, I just want to list apps that start up

const promisifiedRegedit = require('regedit').promisified;

async function main() {
    const listResult = await promisifiedRegedit.list('HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run');
    console.log(listResult);
}
  
main();

replace 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run' to 'HKCU\Software\Microsoft\Windows\CurrentVersion\Run'

Namicici avatar Dec 19 '23 09:12 Namicici