electron 写入注册表 实现开机自启动
windows平台
首先先明确;开机自启动写入注册表的位置,在KEY_CURRENT_USER\Software\\Microsoft\\Windows\\CurrentVersion\\Run
打开注册表方法: win + R ,运行regedit,按照上面路径点到Run上,右侧的值就是开机启动项。
确认开机自启动设置成功方法: win + R , 运行 msconfig,点开启动项,前面有对号的就是开机的启动项。
写入注册表:
var regedit = require('regedit'); //引入regedit
regedit.putValue({
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run':{
'vanish2' : {
value : "C:\Windows",
type : 'REG_SZ' //type值为REG_DEFAULT时,不会自动创建新的name
}
}
},function(err){
console.log(err);
})
列出regedit列表:
regedit.list('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',function(err,result){
console.log(result);
})
创建Key值,这个key值,其实就是注册表里的项值,新建项值(一个文件夹,不是文件夹里的值)。
regedit.createKey('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\ele', function(err) {
console.log(err);
})
删除Key值,会删除文件夹下所有值
regedit.deleteKey('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run', function(err) {
console.log(err);
})
删除值,regedit的文档中并没看到这一项,寻找到的文档中,给出了一个凑合着的方案就是清空键值,利用putValue,给原来Name的值变为空
代码示例:
regedit.putValue({
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run':{
'vanish2' : {
value : "",
type : 'REG_SZ'
}
}
},function(err){
console.log(err);
})
删除参照原github地址:https://github.com/ironSource/node-regedit#regeditdeletekeystringarray-function
当然这种方式治标不治本,所以想要真正的去删除一个键值,还需要靠其他的东西(或许regedit 有,只是我没看到。)
新的删除方法,需要引用 child_process
示例代码:
var cp = require('child_process');
//删除vanish2的键值
cp.exec("REG DELETE HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v vanish2 /f",function(err)
{
console.log(err);
});
这种child_process 也可以去添加注册表,原理是用系统的reg功能,想要查看Reg功能,请在cmd中,运行 REG /?,会得到提示,同时这些在cmd之中,可以直接运行,所以可以先在cmd运行成功后,再放入程序中调试。
REG 操作查询:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
REG FLAGS /?
所以通过child_process就可以上面的命令了:
var cp = require('child_process');
cp.exec("REG QUERY HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run",function(error,stdout,stderr) {
console.log(error);
console.log(stdout);
console.log(stderr);
});
希望对你有帮助,谢谢。
electron 写入注册表 实现开机自启动的更多相关文章
- C++ 无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序。
C++ 无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序.但可以写入到H ...
- ArcGIS AddIN开发之COM对象写入注册表
做一个交互式绘制文字的工具,希望这次设置的Symbol,下次打开ArcMap时自动调用这个Symbol,并支持对其进行修改. 解决方法是将这个Symbol写入注册表中,每次自动读取上一次设置的Symb ...
- ASP.NET中如何读取和写入注册表
直接给源码: 读取注册表内容: RegistryKey regkey=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Window ...
- C#部署安装,将用户安装路径记录下写入注册表,并启动
安装部署程序,将安装目录写入注册表 (1)在“安装部署项目”上点击“注册表编辑器” (2)在HKey_LOCAL_MACHINE_SoftWare 下新建键 Manufacturer 代表软件的制造商 ...
- VB的写法,关于版本写入注册表
VB的写法,关于版本写入注册表 '软件都有一个关于我们的菜单,单单实现这个功能并不难,困难的是能够将这些信息写入注册表中,这样每次只要弹出这样的窗口,就从注册表里去搜索.这样是不是极大的节省了资源 ...
- Installshield 打包安装程序时写入注册表,及运行bat文件
一.写入注册表 1. 打开project assistant –> Project Registry 可以像注册表里一样操作,其中[INSTALLDIR]是指的安装路径 二. 运行bat文件 ...
- 【Visual Installer】如何读取与写入注册表信息
引入:using Microsoft.Win32; (1)读取注册表信息 代码: RegistryKey rsg = null; rsg = Registry.LocalMachine.OpenSub ...
- python路径写入注册表,导入三方模块win32
python在安装第三方模块时候,需要将python的路径写入注册表,否则会提示 'python version 3.8-32 required,which was not found in the ...
- [Inno Setup]写入注册表时32位系统和64位系统的路由
昨天下午组内一位同事跟说,他想在Inno Setup的安装包中写入一个注册表.目标位置是HKLM:\Software\下面创建自己的注册表项.然后说尝试了好几次都不行, 但是往HKCU下面写入却是OK ...
随机推荐
- 201521123121 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...
- 201521123066 《Java程序设计》第十四周学习总结
1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语句(截图) - ...
- PHP封装数据库连接
将数据库连接放在类里面,用的时候直接实例化类. 将数据库地址,用户名,密码做成成员变量 将数据库连接做成成员方法,通过传入的sql语句返回结果集对象 class DBDA{ public $host= ...
- 工厂模式 and 单例模式
工厂模式:使用工厂类使创建类与使用类分离,从而提高代码的易维护性,可扩展性等 工厂模式分位简单工厂模式和工厂方法模式 使用简单工厂模式的步骤: 1.创建父类及其子类 父类中有[ ...
- 对IO流的操作(文件大小,拷贝,移动,删除)
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.Fi ...
- 用List传递学生信息
集合在程序开发中经常用到,例如,在业务方法中将学生信息.商品信息等存储到集合中,然后作为方法的返回值返回给调用者,以此传递大量的有序数据. 本实例将使用List集合在方法之间传递学生的信息.实例效果如 ...
- Python-老男孩-03_socket
Socket简介: 所谓Socket也称"套接字",用于描述IP和端口,是一个通信链的句柄,应用程序通过"套接字"向网络发出请求或应答网络请求. Socket起 ...
- Linux服务器硬盘状态查看
首先执行fdisk -l最底下 Device Start End Sectors Size Type /dev/vda1 2048 6143 4096 2M BIOS boot /dev/vda2 6 ...
- hadoop各个类及其作用
1.基础包(包括工具包和安全包) 包括工具和安全包.其中,hdfs.util包含了一些HDFS实现需要的辅助数据结构:hdfs.security.token.block和hdfs.security.t ...
- GMF常见问题
1.问题:连接线旁边没有文字标签和箭头 文字标签:在gmfmap里的Connection Mappping下增加Label Mapping元素:箭头:在gmfgraph里为Polyline Conne ...