vox-core
Version:
Runtime de aplicaciones multiplataforma
58 lines (47 loc) • 1.93 kB
JavaScript
var registry=module.exports;
var csfromjs= core.VW.Clr.Manager.current; // require("csfromjs");
var registryClass= csfromjs.get("Microsoft.Win32.Registry")
/*.staticMethod("GetValue").staticMethod("SetValue").staticField("ClassesRoot")
.staticField("CurrentConfig").staticField("CurrentUser").staticField("DynData")
.staticField("LocalMachine").staticField("PerformanceData").staticField("Users");
*/
var registryKeyClass= csfromjs.get("Microsoft.Win32.RegistryKey")
/*.method("CreateSubKey").method("DeleteSubKey").method("DeleteValue")
.method("Flush").method("ToString").method("GetSubKeyNames")
.method("GetValue").method("GetValueKind").method("GetValueNames")
.method("OpenSubKey").method("SetValue").property("Name")
.property("SubKeyCount").property("ValueCount")
*/
registry.$registryKey=registryKeyClass;
var fields=["getClassesRoot","getCurrentConfig", "getCurrentUser", "getDynData", "getLocalMachine","getPerformanceData", "getUsers"];
var fields2=["classesRoot","currentConfig", "currentUser", "dynData", "localMachine","performanceData", "users"];
var fields3=["ClassesRoot","CurrentConfig", "CurrentUser", "DynData", "LocalMachine","PerformanceData", "Users"];
// James! (07-03-2016)
// Se reemplazan callbacks por task ...
registry.task= new core.VW.Task()
var task1= registryClass.loadMembers()
task1.oncomplete= function(){
if(task1.exception){
registry.task.exception= task1.exception
return registry.task.finish()
}
var getData=function(i){
var field=fields[i];
if(field){
registryClass.native=false;
var task= registryClass[field]()
task.oncomplete= function(){
if(task.exception){
registry.task.exception= task.exception
return registry.task.finish()
}
registry[fields2[i]]= task.result;
getData(i+1);
};
}
else{
registry.task.finish()
}
}
getData(0);
}