node-webkit设置程序开机启动

上一篇写了打包脚本中设置安装时开机启动,这一篇写由node.js来控制程序是否随windows系统开机启动.

首页在项目package.json中加入对windows-shortcuts的引用(手动下载地址https://github.com/j201/windows-shortcuts)

"dependencies": {

"windows-shortcuts":"*"

}

在npm install windows-shortcuts,加入快捷方式的第三方包.再判断系统,根据系统生成启动目录地址,最后用window-shortcuts生成快捷方式,在启动目录创建成功后就能开机启动了.

var shortcut = require(‘windows-shortcuts‘);
var fs=require("fs");
//windows下的开机启动
if(process.platform.match(/^win/)){
	//开机启动目录 
	var startupMenu="";
	//APPDATA目录中有Roming的是win7,win8等同类系统开机目录
	if(/Roaming/.test(process.env.APPDATA)){
		startupMenu=process.env.APPDATA+"\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\";
	}else{
	//winXp等同类系统开机目录 
		startupMenu=process.env.USERPROFILE+"\\「开始」菜单\\程序\\启动\\";
	}
	//在目录下生成的快捷方式名称
	var startupTarget=startupMenu+"程序名.lnk";
	//要复制快捷方式过去的源程序
	var sourcePrograme=__dirname+"\\nw.exe";
	//存在就删除,不存在就创建
	if(fs.existsSync(startupTarget)){
		fs.unlink(startupTarget,function(err){
			if(err){
				console.error("取消开机启动出错",err);
			}
		})
	}else{
		shortcut.create(startupTarget,sourcePrograme,function(err){
			if(err){
				console.error("设置开机启动出错",err);
			}
		})
	}
}

还有一种方式,调用regedit 传入参数,写注册表也行.

在写这个过程中,找了些资料,开始用的node.js的自带模块fs,的fs.symlink软链接来生成快捷方式,发现只有把链接命名为exe后缀的才会显示图标,其它的能用,但图片是空的.而且这个只能在win7,win8这些系统中用,在xp下会报错,错误代码:ENOSYS,因为XP不支持fs.symlink.

时间: 2024-10-20 07:23:38

node-webkit设置程序开机启动的相关文章

CentOS设置程序开机启动程序/服务的方法(转)

注意:CentOS 6下基本没什么问题,CentOS 7估计不一定能行. 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. 1.把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd. #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in

Linux设置程序开机启动-tomcat开机启动

假设我有一个tomcat应用需要开机启动. 前提你的JAVA环境变量已经配置好没有问题,检测方法如图 然后找到tomcat的目录,我的目录是 /home/yuqing_4.0/tomcat_share/bin 复制这个目录. 打开/etc/rc.local 这个文件 [[email protected] bin]# vim /etc/rc.local 添加如图我圈出来的内容 #source /etc/profile #/home/yuqing_4.0/tomcat_share/bin/start

linux设置程序开机启动

网上看到共有三个方法,这里仅介绍最简单一种--修改    /etc/rc.local   文件: 1)在命令行下切到该etc目录下,然后输入命令:  sudo gedit rc.local 2)在rc.local 文件最后一行的   exit 0    前面加上运行程序的绝对路径即可,如图蓝色部分,HelloWorld为程序: 3)保存,退出.重启计算机程序即已经执行 具体可参见:http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.h

cenOS系统,chkconfig设置程序开机自启--mysql、tomcat、redis、fastdfs--nginx/fdfs_trackerd/fdfs_storaged

设置程序开机启动就是将程序的启动脚本添加到/etc/init.d目录下,或者将启动路径写入/etc/rc.d/rc.local文件里面. 设置mysql开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysql chkconfig mysql on 设置fdfs_tracker开机启动 cp /usr/local/src/FastDFS/init.d/fdfs_tracke

CentOS设置程序开机自启动的方法

转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. 1.把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd. #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put you

cenOS设置程序开机自启动的方法

cenOS设置程序开机自启动的方法主要有两种 1.把启动程序的命令添加到/etc/rc.d/rc.local 文件夹中. eg1.设置开机启动mysql vim /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want

VS2012+C语言+设置程序开机自动启动+示例

#include <stdio.h> #include <windows.h> #include <stdlib.h> char* ReplaceString(const char *srcStr, const char *src, const char *dest) //替换字符串,获得文件路径 { char *ptr; int len = strlen(srcStr); ptr = (char*)malloc(sizeof(char)*len+1); strcpy(

C#实现程序开机启动

如何用c#实现开机启动?其实用c#实现程序的开机启动大致有两种方法,就是写入注册表或者采用服务程序,最近一直研究着用C#来操作注册表,下面介绍的方法便是用注册表来实现程序随开机启动(高手就不用看了,嘿嘿...).1)引入命名空间 using Microsoft.Win32; //打开注册表子项RegistryKey key = Registry.LocalMachine.OpenSubKe("SOFTWARE//Microsoft//Windows//CurrentVersion//Run&qu

Linux 设置mysql开机启动

linux开启启动的程序一般放在/etc/rc.d/init.d/里面,/etc/init.d/是其软连接 mysql设为linux服务 cp /usr/local/mysql5/share/mysql/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 2345 mysqld on chown mysql:mysql -R /usr/local/mysql5/ service mysqld start