[Project_owners] nsIWindowsRegKey.getValueType Error
Jim Cuzella
trinitronx at gmail.com
Thu Jan 10 10:48:38 PST 2008
I'm attempting to read some arbitrary registry value using the
nsIWindowsRegKey object, but to do so I need to know it's type to use
the correct read method. However, I keep getting a NS_ERROR_FAILURE
exception, and can't figure out why it fails. Here is the error from
the error console:
Error: uncaught exception: [Exception... "Component returned failure
code: 0x80004005 (NS_ERROR_FAILURE) [nsIWindowsRegKey.getValueType]"
nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame ::
chrome://firereg/content/XPCOM.js :: readRegistryValue :: line 3" data: no]
I've tried reading just the type with getValueType(), and it fails with
the same error.
Here is the javascript code behind it, line 3 is the first
wrk.getValueType(value) in the readRegistryValue() function:
function readRegistryValue(wrk, value)
{
switch (wrk.getValueType(value)) {
case wrk.TYPE_STRING:
return wrk.readStringValue(value);
case wrk.TYPE_BINARY:
return wrk.readBinaryValue(value);
case wrk.TYPE_INT:
return wrk.readIntValue(value);
case wrk.TYPE_INT64:
return wrk.readInt64Value(value);
}
// unknown type
return null;
}
function ReadReg() {
var keybox = document.getElementById("reg-key");
var keystring = keybox.value; // Read in reg key to read from input box
var wrk = Components.classes["@mozilla.org/windows-registry-key;1"]
.createInstance(Components.interfaces.nsIWindowsRegKey);
// Run on startup:
// SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
// AutoPlay keys:
//
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
//
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
wrk.open(wrk.ROOT_KEY_LOCAL_MACHINE,
keystring,
wrk.ACCESS_READ);
//var id = wrk.readStringValue("ProductId");
//initialize program list string
var programs = "";
/*for ( var i=0; i<wrk.valueCount; i++ ) {
alert("Valuecount is: " + wrk.valueCount);
var type = wrk.getValueType(i);
var name = wrk.getValueName(i);
var value = wrk.readStringValue(name);
alert(value);
programs += name + '\t\t' + value + '\n';
}*/
var name = wrk.getValueName(0);
alert("Name: " + name);
//var type = wrk.getValueType(0);
//alert("Type: " + type);
var value = readRegistryValue(wrk,0);
alert("Value: " + value);
wrk.close();
var textbox = document.getElementById('keyvalues');
if ( programs != "" ) {
textbox.value = programs;
var clearbutton = document.getElementById('clear-button');
clearbutton.disabled = false;
}
event.stopPropagation();
}
function Clear() {
var textbox = document.getElementById('keyvalues');
textbox.value = "";
var clearbutton = document.getElementById('clear-button');
clearbutton.disabled = true;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://www.mozdev.org/pipermail/project_owners/attachments/20080110/4bd1c8ba/attachment.bin
More information about the Project_owners
mailing list