var WinReg = require('winreg');
var startOnBoot = {
enableAutoStart: function(name, file, callback){
var key = getKey();
key.set(name, WinReg.REG_SZ, file, callback || noop);
},
disableAutoStart: function(name, callback){
var key = getKey();
key.remove(name, callback || noop);
},
getAutoStartValue: function(name, callback){
var key = getKey();
key.get(name, function(error, result){
if(result){
callback(result.value);
}
else{
callback(null, error);
}
});
}
};
var RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
function getKey(){
return new WinReg({
hive: WinReg.HKCU, //CurrentUser,
key: RUN_LOCATION
});
}
function noop(){}
module.exports = startOnBoot;
var startOnBoot = require('startOnBoot.js');
//设置开机启动
startOnBoot.enableAutoStart('<写入注册表的key>', process.execPath);
//取消开机启动
startOnBoot.disableAutoStart('<写入注册表的key>');
node-webkit没有提供开机自启动的接口,在github的 issue 里也没有找到靠谱的解决方法,不过经过一番寻觅,找到了node下操作注册表的方法,就是 winreg (这么好的项目星星少的可怜),还有一个使用winreg修改注册表实现开机启动的demo: node-start-on-windows-boot 。demo很简单,可以直接在项目里使用: