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 写入注册表 实现开机自启动的更多相关文章

  1. C++ 无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序。

    C++  无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序.但可以写入到H ...

  2. ArcGIS AddIN开发之COM对象写入注册表

    做一个交互式绘制文字的工具,希望这次设置的Symbol,下次打开ArcMap时自动调用这个Symbol,并支持对其进行修改. 解决方法是将这个Symbol写入注册表中,每次自动读取上一次设置的Symb ...

  3. ASP.NET中如何读取和写入注册表

    直接给源码: 读取注册表内容: RegistryKey regkey=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Window ...

  4. C#部署安装,将用户安装路径记录下写入注册表,并启动

    安装部署程序,将安装目录写入注册表 (1)在“安装部署项目”上点击“注册表编辑器” (2)在HKey_LOCAL_MACHINE_SoftWare 下新建键 Manufacturer 代表软件的制造商 ...

  5. VB的写法,关于版本写入注册表

    VB的写法,关于版本写入注册表   '软件都有一个关于我们的菜单,单单实现这个功能并不难,困难的是能够将这些信息写入注册表中,这样每次只要弹出这样的窗口,就从注册表里去搜索.这样是不是极大的节省了资源 ...

  6. Installshield 打包安装程序时写入注册表,及运行bat文件

    一.写入注册表 1. 打开project assistant –> Project Registry 可以像注册表里一样操作,其中[INSTALLDIR]是指的安装路径   二. 运行bat文件 ...

  7. 【Visual Installer】如何读取与写入注册表信息

    引入:using Microsoft.Win32; (1)读取注册表信息 代码: RegistryKey rsg = null; rsg = Registry.LocalMachine.OpenSub ...

  8. python路径写入注册表,导入三方模块win32

    python在安装第三方模块时候,需要将python的路径写入注册表,否则会提示 'python version 3.8-32 required,which was not found in the ...

  9. [Inno Setup]写入注册表时32位系统和64位系统的路由

    昨天下午组内一位同事跟说,他想在Inno Setup的安装包中写入一个注册表.目标位置是HKLM:\Software\下面创建自己的注册表项.然后说尝试了好几次都不行, 但是往HKCU下面写入却是OK ...

随机推荐

  1. 201521123071 《JAVA程序设计》第十周学习总结

    第十周-异常与多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业:本次PTA作业题集异常.多线程 1. finally:题目4-2 1. ...

  2. 201521123003《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  3. 201521123092《java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  4. geyear和getfullyear的区别

    getYear(),IE中获得正确年份,但有的浏览器获取的是当前年份-1900的值.而IE是当大于2000时,直接加上1900 getFullYear(),都是可以获得正确年份. 所以建议使用getF ...

  5. 部署maria数据库到linux(源码编译安装)

    maria数据库是mysql原作者另外开发的一个版本,使用方法和mysql一样,可以直接用mysql的库连接. 在这下载包并解压: https://mariadb.org/download/ 建立数据 ...

  6. Mybatis(1)

    properties 标签的作用引入外部properties 文件的内容typeAliases 的作用可以用package这个标签批量给这个包下的所有类起一个别名 name属性写包的名字. 默认别名为 ...

  7. Java学习笔记一---JVM、JRE、JDK

    jdk包含jre,jre包含jvm. 用java语言进行开发时,必须先装jdk: 只运行java程序,不进行开发时,可以只装jre. JVM 即Java Virtual machine,Java虚拟机 ...

  8. maven 执行mvn package/clean命令出错

    mvn compile/test都没报错,但是执行mvn package和mvn clean时候就报错:a required class was missing while executing.... ...

  9. GitHub新手使用教学(从安装到使用)

    一.安装Git for Windows(又名msysgit)  下载地址: https://git-for-windows.github.io/  在官方下载完后,安装到Windows Explore ...

  10. [UIKit学习]02.关于UIButton

    按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 按钮也是一种容器,在这一点上跟UIView类似 按钮的三种状态 normal(普通状态) 默认情况(Default) 对 ...