electron 读取注册表,以调用Photoshop为例

首先需要安装 "regedit":"3.0.0" 添加在 package.json的dependencies中,然后npm install

或者直接在npm:https://github.com/ironsource/node-regedit

第二步,首先理解windows注册表的4个分类


就会出现下面的目录列表:


HKLM=HKEY_LOCAL_MACHINE,是机器软硬件信息的集散地。 
HKCU=HKEY_CURRENT_USER,是当前用户所用信息储存地。
HKEY_CLASSES_ROOT:文件关联相关信息。
HKEY_USERS:所有用户信息。
HKEY_CURRENT_CONfig:当前系统配置

我们所寻找的软件安装路径会在HKEY_LOCAL_MACHINE下面简称:HKLM,下面是代码

let regedit = require('regedit');
        let fs = require("fs");
        regedit.list(['HKLM\\SOFTWARE\\Adobe\\Photoshop']).on('data',function(entry) {
            let keys01 = entry.data.keys;
            keys01.forEach(function(key){

                  regedit.list(['HKLM\\SOFTWARE\\Adobe\\Photoshop\\'+key]).on('data',function(e){

                       let sum_key = e.key;
                       var keys02 = e.data.keys;
                       if(keys02){

                         keys02.forEach(function(key){

                                 if(key == 'ApplicationPath'){

                                   regedit.list([sum_key+'\\'+key]).on('data',function(e){

                                       let val = e.data.values;
                                       let photoshop_path =   val[""].value;

                                     console.log(photoshop_path+"\\Photoshop.exe");
                                   });
                               }
                         });
                       }
                  });
            })
        });
搞定!

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...