1.安装插件
npm i regedit
2.正常软件存放注册表路径:
//这里面的(S-1-5-21-2364185832-2597701064-117226805-1001)有可能不一样需要正则匹配后面1001拿到这个路径
计算机\HKEY_USERS\S-1-5-21-2364185832-2597701064-117226805-1001\Software\Microsoft\Windows\CurrentVersion\Uninstall
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
上面的路径是注册表完整路径,使用插件必须找到上面的第二个路径可以使用:
const regfolder1 = 'HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall';
const regfolder2 ='HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall';
3.使用插件regedit读取上面的路径 拿到当前文件夹在注册表完整路径
//这里面的key 就是你要读取的注册表路径 没有贴上完整代码 具体逻辑看看项目逻辑
regedit.list([key], function(err, result) {
const e = result[key];
if(e.values && JSON.stringify(e.values) != "{}" && e.values.DisplayName&& e.values.DisplayIcon) {
DisplayIcon = e.values.DisplayIcon.value.replace(/"/g,'');
if (/\,/.test(e.values.DisplayIcon.value)) {
//注册表里面路径有可能有额外的参数 需要过滤掉
if (!RegeditStartRoute.has(e.values.DisplayName.value)) {
RegeditStartRoute.set(e.values.DisplayName.value,DisplayIcon.split(",")[0]);
}
} else {
if (!RegeditStartRoute.has(e.values.DisplayName.value)) {
RegeditStartRoute.set(e.values.DisplayName.value,DisplayIcon);
}
}
if(index + 1 == regList.length) {
// console.log("RegeditStartRouteSize",RegeditStartRoute.size,RegeditStartRoute);
mainwin.webContents.send('onResult', RegeditStartRoute)
}
}
})