From d06eb68d77b491439f60310d7d2e967282ca47b2 Mon Sep 17 00:00:00 2001 From: tomysshadow Date: Mon, 17 Dec 2018 16:37:45 -0700 Subject: [PATCH 1/2] Fix #37 type error when call Key.setValue() --- lib/registry.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/registry.js b/lib/registry.js index 1cc4194..8b72583 100644 --- a/lib/registry.js +++ b/lib/registry.js @@ -16,7 +16,7 @@ var api = { } var pHkey = ref.alloc(types.PHKEY, new Buffer(ref.sizeof.pointer)); - debug('PHKEY LENGTH: ' + pHkey.deref().length); + console.log('PHKEY LENGTH: ' + pHkey.deref().length); var result = advApi.RegOpenKeyExA(preDefinedKey, subKeyName, 0, accessLevel, pHkey); debug('result:' + result); if (result !== 0) { @@ -109,7 +109,11 @@ var api = { case windef.REG_VALUE_TYPE.REG_DWORD: case windef.REG_VALUE_TYPE.REG_DWORD_BIG_ENDIAN: case windef.REG_VALUE_TYPE.REG_DWORD_LITTLE_ENDIAN: - buffer = new Buffer(4, value); + buffer = new Buffer(4); + // write the DWORD to the buffer to be added to the registry + buffer.writeUInt32LE(value, 0); + // create a pointer to it + byte = ref.alloc(types.LPBYTE, buffer); result = advApi.RegSetValueExA(key.handle.deref(), valueName, null, valueType, byte.deref(), buffer.length); break; default: @@ -136,13 +140,6 @@ var api = { throw 'Failed to open key error ' + result + ':' + error[result]; } }, - deleteValue: function (key, value) { - var result = advApi.RegDeleteValueA(key.handle.deref(), value); - - if (result !== 0) { - throw 'Failed to delete value error ' + result + ':' + error[result]; - } - }, closeKey: function (key) { var result = advApi.RegCloseKey(key.handle.deref()); From 1f7dd83e84450ecd0e6bbeff7c96d2d9f58fb532 Mon Sep 17 00:00:00 2001 From: tomysshadow Date: Mon, 17 Dec 2018 16:42:56 -0700 Subject: [PATCH 2/2] add back deleteValue - oops --- lib/registry.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/registry.js b/lib/registry.js index 8b72583..b1860fe 100644 --- a/lib/registry.js +++ b/lib/registry.js @@ -16,7 +16,7 @@ var api = { } var pHkey = ref.alloc(types.PHKEY, new Buffer(ref.sizeof.pointer)); - console.log('PHKEY LENGTH: ' + pHkey.deref().length); + debug('PHKEY LENGTH: ' + pHkey.deref().length); var result = advApi.RegOpenKeyExA(preDefinedKey, subKeyName, 0, accessLevel, pHkey); debug('result:' + result); if (result !== 0) { @@ -140,6 +140,13 @@ var api = { throw 'Failed to open key error ' + result + ':' + error[result]; } }, + deleteValue: function (key, value) { + var result = advApi.RegDeleteValueA(key.handle.deref(), value); + + if (result !== 0) { + throw 'Failed to delete value error ' + result + ':' + error[result]; + } + }, closeKey: function (key) { var result = advApi.RegCloseKey(key.handle.deref()); @@ -149,4 +156,4 @@ var api = { } }; -module.exports = api; +module.exports = api; \ No newline at end of file