windows下通过注册表来获取计算机相关信息

39、Windows注册表:深入解析与编程访问 本文深入解析了Windows注册表的结构与核心功能,介绍了五大根键的作用及其存储机制,并详细讲解了如何使用PowerShell和Rust进行注册表的读写、枚举等操作。文章还涵盖了注册表访问的安全性考虑、性能优化策略以及在系统管理、应用程序配置和安全审计中的典型应用场景,帮助开发者和系统管理员高效、安全地管理和操作Windows配置信息。 阅读详情

在开发过程中遇到了不少需要获取计算机信息的需求,首先我们可以通过windows的api来完成一部分的需求,但是还有一部分并不能通过api来完成,那么通过注册表来获取是一个不错的办法

下面给出的是头文件相关信息:

#pragma once
#include <vector>

struct SoftInfo 
{
	//软件名
	CString m_strSoftName;
	//软件版本号
	CString m_strSoftVersion;
	//软件安装目录
	CString m_strInstallLocation;
	//软件发布厂家
	CString m_strPublisher;
	//主程序所在完整路径
	CString m_strMainProPath;
	//卸载exe所在完整路径
	CString m_strUninstallPath;
};

class CSoftInfo
{
public:
	CSoftInfo(void);
	~CSoftInfo(void);

	//获取一个包含常用软件安装信息的vector
	std::vector<SoftInfo> GetSoftInfo(void) const;

	//获取所有已安装常用软件名
	void GetSoftName(std::vector<LPCTSTR> &lpszSoftName);

	//获取已安装常用软件版本号
	void GetSoftVersion(std::vector<LPCTSTR> &lpszSoftVersion);

	//获取所有已安装常用软件安装目录
	void GetInstallLocation(std::vector<LPCTSTR> &lpszInstallLocation);

	//获取所有已安装常用软件发布厂商
	void GetPublisher(std::vector<LPCTSTR> &lpszPublisher);

	//获取所有已安装常用软件主程序所在目录
	void GetMainProPath(std::vector<LPCTSTR> &lpszMainProPath);

	//获取所有已安装常用软件卸载路径
	void GetUninstallPath(std::vector<LPCTSTR> &lpszUninstallPath);

	//获取一个包含系统补丁信息的Vector
	std::vector<SoftInfo> GetSystemPathchesInfo(void) const;
	
	//获取所有已安装系统补丁名
	void GetSystemPatchesName(std::vector<LPCTSTR> &lpszSystemPatchesName);


private:
	// 保存已安装常用软件安装信息
	std::vector<SoftInfo> m_SoftInfoArr;
	// 保存系统补丁信息
	std::vector<SoftInfo> m_SystemPatchesArr;
};
具体实现部分详见 实现源码
Windows注册表深度学习与实战教程 Windows注册表是Windows操作系统核心组件之一,作为集中存储系统配置、软件设置、用户偏好等关键信息的层次化数据库,其作用贯穿系统启动、运行及维护全过程。注册表最早出现在Windows 3.1中,随着系统演进,其结构和功能不断优化,已成为Windows NT系列操作系统不可或缺的配置中枢。理解注册表不仅有助于系统管理员进行故障排查与性能调优,也为开发者提供了深入控制系统行为的手段。 阅读详情

相关推荐

掌握Windows安全模式修复:注册表文件实战指南

安全模式是操作系统提供的一种诊断环境,主要用于解决系统问题和排除故障。在安全模式下,操作系统只加载最基本的驱动程序和服务,这允许用户在不影响正常系统运行的情况下进行系统维护或问题诊断。注册表是Windows操作系统中用于存储系统和应用程序配置信息的层次数据库。它是系统运行的核心部分,几乎控制着Windows操作系统的各个方面。注册表由一系列键、子键和值项组成,其中包括应用程序设置、用户偏好、系统策略、硬件配置信息等。每个键都可以看作是一个目录,可以包含子键(即子目录)和值项(即文件)。

weixin_42327217的博客 1670

通过注册表获取电脑硬件信息

通过注册表获取电脑硬件信息 可以获取的硬件信息:设备型号,设备厂商,设备SN号:电脑背面条形码下面,cpu型号,操作系统名称。 下面是获取sn号的代码示例: std::string GetSystemSnNumber() { const HKEY key = HKEY_LOCAL_MACHINE; const wchar_t* const subKey = L"SOFTWARE\\WOW6432Node\\Intel\\Setup and Configuration Software\\SystemD

mengxingchengshang的博客 2072

掌握DOS命令在注册表管理中的应用

注册表由多个层次结构的键(Key)和子键(Subkey)构成,它们存储着关于用户偏好、系统参数和安装程序的配置信息。这些信息被用来指导系统如何响应用户行为或软件请求,例如启动服务、加载驱动程序、显示桌面图标等。在开始配置DOS环境之前,我们需要了解一些必备的DOS命令行工具。这里介绍几个最常用的:reg.exe:如前所述,reg.exe是管理注册表的关键工具。find.exe:查找文件中的字符串。与相比,它更为基本,但仍然非常有用。echo.exe。

weixin_31715353的博客 1162

获取windows硬件信息

有以下四种方式: 1、通过windows SDK,读取注册表、API方式实现,但没找到读取CPU和硬盘温度的方法。 2、通过wmi COM组件实现,可以读取CPU温度,但只是开机时Bios的温度,一直不变。 3、通过cpuid指令实现,可以获取cpu相关信息,但获取温度需要读MSR寄存器,无权限。 4、驱动方式:通过winio或winring0   读注册表获取信息示例: 获取HKEY_LO...

jingle008的博客 2796

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 509

FPGA远程升级避坑指南:用AXI Quad SPI IP读写N25Q128 Flash的完整流程

本文详细介绍了FPGA远程升级过程中使用AXI Quad SPI IP读写N25Q128 Flash的完整流程,包括IP核配置、Flash操作指令集、双镜像备份设计及生产级远程升级协议。通过最佳实践和避坑策略,帮助开发者实现可靠的镜像更新方案,提升系统可靠性和可维护性。

weixin_30542079的博客 675

2014-04-25总结:注册表中磁盘号及名称,磁盘的分卷信息。

1、在公司,学到的东西很多,但真正能被我

勿忘初心,安得始终 4940

数字IC时序约束实战:深入解析clock_uncertainty的设置策略与后端影响

本文深入探讨数字IC设计中clock_uncertainty的设置策略及其对后端实现的影响。通过分析时钟不确定度的组成(包括clock_skew、clock_jitter和margin),并结合实际项目经验,详细介绍了在不同设计阶段(综合、布局布线、签核)的动态调整方法。文章还提供了工程化处理参数来源、跨时钟域特殊处理以及优化时序收敛的实用技巧,帮助工程师提升数字IC设计的可靠性和性能。

weixin_29284657的博客 229

取硬盘序列号(注册表)

//==============================================================================// 描述: f_get_hd(),取第一硬盘序列号.//------------------------------------------------------------------------------// 参数:(无)//--

zzxing的专栏 6151

SAP系统中PP模块全配置文档

配置路径IMG>SAP NetWeaver>常规设置>维护日历>工厂日历事务代码SCAL要求传输工厂代码描述日历代码日历描述起始日期星期一星期二星期三星期四星期五星期六星期日有效开始日期有效结束日期1000南微医学工厂MT南微医学工厂日历√√√√√√√201820502.4定义工厂配置路径IMG>生产>物料清单>常规数据>定义BOM状态事务代码OS23要求传输配置路径IMG>生产>主数据>资源>常规数据>标准值>定义参数。

yanzibing99的博客 1894

Day470&471.Netty概述&Netty高性能架构设计 -netty

Netty概述 一、原生 NIO 存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。 JDK NIO

阿昌爱Java 1572

Python获取计算机相关信息:WMI

在计算机的日常使用或者编程开发时,有时候需要知道计算机的一些相关信息,比如:计算机硬件信息,包括:CPU、内存、键鼠、显示器、网络状况等。计算机操作系统信息,包括:磁盘分区、服务、账号、进程等。在Python中,WMI(Windows Management Instrumentation)库是一种用于与Windows操作系统进行交互的接口。它提供了一组用于查询、管理和配置Windows系统信息的功能。

2501_92499985的博客 914

ROS入门必学导航算法——Navigation

该平台集成了多款无人车底盘,包括履带式、四轮差速、阿克曼、麦克纳姆轮底盘等,以满足不同形式和配置的需求,并搭载了RTK定位系统、双目相机、深度相机和激光雷达等多种传感器,以满足开发者的科研需求。amcl节点接收里程计数据(通过"odom"话题)和激光雷达数据(通常通过"scan"话题),结合已知的地图,实时地估计出机器人在该地图上的位置。在ROS中,这是通过"tf库"变换实现的,通过将传感器数据转换到共同的参考系中,系统可以更容易地集成来自不同传感器的数据,并确保它们在相同的空间和时间范围内可用。

AMOVLAB(阿木实验室) 2909

注册表包含了计算机哪些信息,通过注册表获取计算机相关信息

RegOpenKey()capGetDriverDescription()// Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #pragma comment(lib,"Vfw32.lib")using namespace std;DWORD CPUClockMHz();BOOL WebCamIsEx...

weixin_31140599的博客 311

【Claude Code 源码解析教程】总体大纲

本教程旨在深入解析 Anthropic Claude Code 项目的源码架构和实现细节。Claude Code 是一个基于 TypeScript + Bun 构建的 AI 编程助手 CLI 工具,代号 "Tengu",具有复杂的多模块架构和丰富的功能特性。本教程基于Claude Code 的源码分析来生成,将帮助您全面掌握 Claude Code 的源码架构和实现细节,为开发类似 AI 编程助手工具奠定坚实基础。

rengang66的博客 388

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 909

c# u盘使用记录_C# 系统应用之通过注册表获取USB使用记录(一)

该文章是“个人电脑历史记录清除软件”项目的系统应用系列文章.前面已经讲述了如何清除IE浏览器的历史记录、获取Windows最近访问文件记录、清除回收站等功能.现在我需要完成的是删除USB设备上的U盘、手机、移动硬盘等记录,真心觉得这方面资料特别少.这篇文章首先主要讲述了通过注册表获取USB使用记录,希望对大家有所帮助.一.注册表基本知识注册表(registry)是Windows系统中一个重要的数据...

weixin_36465108的博客 1492

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux修改windows注册表,妙招:让修改的注册表立即生效的几种方法

建站学院(LieHuo.Net)Windows文档Windows操作系统是全球最广泛,使用者最多的软件,熟悉Windows软件成了电脑操作者必不可少的功课,注册表作为“Windows的神经系统”非常重要,相信很多朋友都非常熟悉注册,在开始-运行:regedit.exe 有时候通过注册表编辑器来修改注册表,只有一小部分能立即生效,怎么能让注册表在不重启的情况下快速生效呢?以下是注册表立即生效方法的几...

weixin_39560029的博客 856

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Windows 服务器提权之注册表篇:深入探索与实践

通过对 Windows 注册表在服务器提权中的深入探讨,我们了解到注册表权限管理不当可能带来的安全风险。在实际的服务器管理中,应严格遵循最小权限原则,确保普通用户对注册表关键项没有不必要的写入权限。定期检查注册表权限,及时发现并修复潜在的权限漏洞。同时,对于系统服务和自启动项,要仔细审查其来源和配置,避免恶意程序利用这些机制进行提权攻击。对于安全研究人员和渗透测试人员而言,掌握注册表提权技术有助于发现系统潜在的安全问题,为系统加固提供有力支持。

m0_57836225的博客 1261

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

注册表

[编辑本段]如何打开注册表  Win98/98SE/Me  运行中输入regedit.exe 无权限限制  Win2000/XP  1.开始>>运行.中输入regedit  2.运行中输入regedit  第一种方法打开的注册表编辑器和Win98下的一样,而且功能相同,而使用第二种方法打开的注册表编辑器则可以方便的设置权限,建议网络管理员使用第2种方法打开注册表编辑

tomorrowsprogress的专栏 895

C# 系统应用之通过注册表获取USB使用记录(一)

该文章是“个人电脑历史记录清除软件”项目的系统应用系列文章. 前面已经讲述了如何清除IE浏览器的历史记录、获取Windows最近访问文件记录、清除回收站等功能.现在我需要完成的是删除USB设备上的U盘、手机、移动硬盘等记录,真心觉得这方面资料特别少.这篇文章首先主要讲述了通过注册表获取USB使用记录,希望对大家有所帮助. 一.注册表基本知识 注册表(registry)是Windows...

weixin_30235225的博客 173
上一篇: mfc 获取显卡信息
下一篇: windows下SystemParametersInfo获取屏幕保护始终为TRUE解决办法
RuningPigNO1
博客等级 码龄10年 22粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuningPigNO1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值