regedit或child_process添加注册表
使用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添加注册表相关推荐
- java在regedit找不到_Windows找不到文件regedit打不开注册表怎么解决
Windows找不到文件regedit打不开注册表怎么解决很多小伙伴都还不知道,下面IEfans小编为大家整理了解决regedit打不开注册表方法说明,一起来看看吧! 方法/步骤分享: 1.电脑桌面, ...
- 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat
注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...
- 添加注册表右键以管理员身份在当前文件夹打开CMD窗口
添加注册表右键以管理员身份在当前文件夹打开CMD窗口 目 录 *添加注册表右键以管理员身份在当前文件夹打开CMD窗口* @[toc](目 录) <1> 简介 <2> 下载地址 ...
- Windows中添加自己的程序到开机启动中(添加服务,添加注册表)
在系统启动的时候启动自己想要启动的程序: 方法一:利用开机启动文件夹 将exe文件或exe文件的快捷方式复制到(启动)文件夹下 以win7为例:开始→所有程序→启动→鼠标右键打开 方法二:添加系统服务 ...
- 系统更新win11 后,右键没有显示git,添加注册表选项的解决办法
1.点击windows图标,输入:regedit 打开注册表 2.打开注册表,位置:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\open in g ...
- Win10找不到系统应用“照片查看器”时添加注册表即可解决?!
新建一个TXT文本文档,把以下代码复制粘贴到其中: Windows Registry Editor Version 5.00 ; Change Extension's File Type [HKEY_ ...
- 清除svn文件(添加注册表方式)
1.新建一个注册文件 如:cleanSvn.reg 复制一下内容: Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\C ...
- 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统.Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题.使用注册表编辑器需要您自担风险. 本文分步介绍了如何使用注 ...
- Python 技术篇-用win32库实现读取、添加、修改注册表的值实例演示
注册表编辑器里默认有这 5 个根目录,每个目录的说明如下: # -*- coding: UTF8 -*- # 日期:2020.12.15 # 作者:小蓝枣import win32api import ...
最新文章
- Python打印json文件,实现输出
- Adversarial Discriminative Domain Adaption 阅读笔记
- Struts2中配置默认Action
- JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
- error C2018: unknown character '0xa1'解决方法
- appframework3.0(JQmobi)入门教程
- [转]JSon数据解析的四种方式
- 查找在Git中删除文件的时间
- 对字典转模型模块的理解
- PHP中的数组(拆分与合并)
- python 爬虫 糗百成人
- 中科大EPC课程爬取
- WEB前端之学会用PS很重要
- 七自由度冗余机械臂运动学逆解与工作空间分析MATLAB实现
- bwiki样式的活动倒计时html代码(带渐变色进度条)
- 小游戏------扫雷
- 考研计算机300分什么水平,2020考研成绩达到300分是什么水平?
- windows下一些启动服务的命令
- Pytorch 实践 —— 乳腺癌预测
- Quartus-II 13 安装