使用regedit包添加注册表,regedit是对node的子进程模块进行了封装,使得我们不用去写shell脚本或者window命令之类的
安装
npm install --save regedit
使用,注意这里我是把作者的vbs目录拷贝到我的项目里了,要不然无法使用,另外是无法往HKEY_CLASSES_ROOT添加的(管理员可以,如果有人知道怎么可以不用管理员身份也可以添加的,请教下我0.0),我 目前是在HKEY_CURRENT_USER添加的,因为这个是允许当前用户的
 var regedit = require('regedit');//添加到注册表的keyvar regeditList = ['HKCU\\Software\\education', 'HKCU\\Software\\education\\DefaultIcon', 'HKCU\\Software\\education\\shell', 'HKCU\\Software\\education\\shell\\open', 'HKCU\\Software\\education\\shell\\open\\command'];//值的类型var type = ['REG_SZ', 'REG_DEFAULT'];//安装项目的路径var execPath = process.execPath;//存放.wsf文件的目录,我把它vbs的目录拷贝到我的项目中regedit.setExternalVBSLocation('./src/common/vbs');//首先添加我们需要创建的keyregedit.createKey(regeditList, function(err) {console.log(err);})//往不同的key中添加值和类型,使用了es6语法添加对象的keyvar valuesToPut = {[regeditList[0]]: {[type[1]]: {value: 'education Protocol',type: type[1]},'URL Protocol': {value: '1',type: type[0]}},[regeditList[1]]: {[type[1]]:{value: execPath,type: type[1]}},[regeditList[2]]: {[type[1]]:{value: '1',type: type[1]}},[regeditList[3]]: {[type[1]]:{value: '1',type: type[1]}},[regeditList[4]]: {[type[1]]:{value: execPath,type: type[1]}}}//添加自定义的数据到注册表regedit.putValue(valuesToPut, function(err) {console.log(err);})//查询注册列表regedit.list(regeditList[0], function(err, result) {console.log(err);console.log(result);})
child_process添加注册表
注意命令的写法,小心语法错误,如果需要看添加注册表的用法可以在cmd上输入REG /?,然后输入REG ADD /?可以看到添加注册表的命令,自己可以先在cmd上进行写入,成功后再到程序上编写,同样的会有权限的问题出现
    var cp = require('child_process');var decoder = new TextDecoder('gbk');//使用这个也没有解决乱码问题var iconv = require('iconv-lite');var encoding = 'cp936';var binaryEncoding = 'binary';cp.exec('REG ADD HKEY_CLASSES_ROOT\\education /ve /t REG_SZ /d "education Protocol" /f',{ encoding: binaryEncoding },function(error,stdout,stderr) {//有些乱码可以显示出来,有些还是乱码,也没找到完全能解决乱码问题,参考博客:https://ask.csdn.net/questions/167560console.log(iconv.decode(new Buffer(stdout, binaryEncoding), encoding), iconv.decode(new Buffer(stderr, binaryEncoding), encoding));});cp.exec('REG ADD HKEY_CLASSES_ROOT\\education /v "URL Protocol" /t REG_SZ /d "" /f',function(error,stdout,stderr) {});cp.exec('REG ADD HKEY_CLASSES_ROOT\\education\\DefaultIcon /ve /t REG_SZ /d "C:\\Program Files\\fwsd\\education.exe" /f',function(error,stdout,stderr) {});cp.exec('REG ADD HKEY_CLASSES_ROOT\\education\\shell /ve /t REG_SZ /d "" /f',function(error,stdout,stderr) {cp.exec('REG ADD HKEY_CLASSES_ROOT\\education\\shell\\open /ve /t REG_SZ /d "" /f', function(error, stdout, stderr) { cp.exec('REG ADD HKEY_CLASSES_ROOT\\education\\shell\\open\\command /t REG_SZ /d "C:\\Program Files\\fwsd\\education.exe" /f', function(error, stdout, stderr) { }) })});
我想实现的功能是点击a标签打开程序,如果是在HKEY_CLASSES_ROOT里注册的是可以打开的,在HKEY_CURRENT_USER注册,我目前不知道如何操作,如果有大神知道的,请指点下!

regedit或child_process添加注册表相关推荐

  1. java在regedit找不到_Windows找不到文件regedit打不开注册表怎么解决

    Windows找不到文件regedit打不开注册表怎么解决很多小伙伴都还不知道,下面IEfans小编为大家整理了解决regedit打不开注册表方法说明,一起来看看吧! 方法/步骤分享: 1.电脑桌面, ...

  2. 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat

    注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...

  3. 添加注册表右键以管理员身份在当前文件夹打开CMD窗口

    添加注册表右键以管理员身份在当前文件夹打开CMD窗口 目 录 *添加注册表右键以管理员身份在当前文件夹打开CMD窗口* @[toc](目 录) <1> 简介 <2> 下载地址 ...

  4. Windows中添加自己的程序到开机启动中(添加服务,添加注册表)

    在系统启动的时候启动自己想要启动的程序: 方法一:利用开机启动文件夹 将exe文件或exe文件的快捷方式复制到(启动)文件夹下 以win7为例:开始→所有程序→启动→鼠标右键打开 方法二:添加系统服务 ...

  5. 系统更新win11 后,右键没有显示git,添加注册表选项的解决办法

    1.点击windows图标,输入:regedit 打开注册表 2.打开注册表,位置:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\open in g ...

  6. Win10找不到系统应用“照片查看器”时添加注册表即可解决?!

    新建一个TXT文本文档,把以下代码复制粘贴到其中: Windows Registry Editor Version 5.00 ; Change Extension's File Type [HKEY_ ...

  7. 清除svn文件(添加注册表方式)

    1.新建一个注册文件 如:cleanSvn.reg 复制一下内容: Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\C ...

  8. 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值

    警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统.Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题.使用注册表编辑器需要您自担风险. 本文分步介绍了如何使用注 ...

  9. Python 技术篇-用win32库实现读取、添加、修改注册表的值实例演示

    注册表编辑器里默认有这 5 个根目录,每个目录的说明如下: # -*- coding: UTF8 -*- # 日期:2020.12.15 # 作者:小蓝枣import win32api import ...

最新文章

  1. Python打印json文件,实现输出
  2. Adversarial Discriminative Domain Adaption 阅读笔记
  3. Struts2中配置默认Action
  4. JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
  5. error C2018: unknown character '0xa1'解决方法
  6. appframework3.0(JQmobi)入门教程
  7. [转]JSon数据解析的四种方式
  8. 查找在Git中删除文件的时间
  9. 对字典转模型模块的理解
  10. PHP中的数组(拆分与合并)
  11. python 爬虫 糗百成人
  12. 中科大EPC课程爬取
  13. WEB前端之学会用PS很重要
  14. 七自由度冗余机械臂运动学逆解与工作空间分析MATLAB实现
  15. bwiki样式的活动倒计时html代码(带渐变色进度条)
  16. 小游戏------扫雷
  17. 考研计算机300分什么水平,2020考研成绩达到300分是什么水平?
  18. windows下一些启动服务的命令
  19. Pytorch 实践 —— 乳腺癌预测
  20. Quartus-II 13 安装

热门文章

  1. lucene6.0 查询语句设置关键字boost值
  2. jetty9更改post请求长度
  3. java集合框架总结之思维导图
  4. 磁盘管理之逻辑卷管理(Logical Volume Manager)
  5. 【阿里云 CDP 公开课】 第二讲:CDH/HDP 何去何从
  6. GitHub Action + ACK:云原生 DevOps 落地利
  7. UI2Code智能生成Flutter代码——机器生成代码
  8. 10个你应该了解的Git命令(以及Git省时小窍门)
  9. 下一代大数据处理引擎,阿里云实时计算独享模式重磅发布
  10. AI+服务 阿里巴巴如何做智能服务转型?