在开发过程中遇到了不少需要获取计算机信息的需求,首先我们可以通过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;
};
具体实现部分详见
实现源码