C++通过访问注册表获取已安装软件信息列表

欢迎加入C++编程群:光影道和

 

 

// ------------------------------------------------------------------------------------------------------------------------
// FlieNmae: 
//   SofInfo.h
// Remark:
//   通过读取注册表获得本机已安装软件信息。
// ------------------------------------------------------------------------------------------------------------------------
#pragma once
#include <vector>

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

class CSoftInfo
{
private:
    // 保存已安装常用软件安装信息
    std::vector<SoftInfo> m_SoftInfoArr;
    // 保存系统补丁信息
    std::vector<SoftInfo> m_SystemPatchesArr;

public:
    CSoftInfo();
    ~CSoftInfo(){}
    
    // 获取一个包含常用软件安装信息的Vector
    std::vector<SoftInfo> GetSoftInfo (void) const;
    // 获取所有已安装常用软件名
    void GetSoftName (std::vector<LPCTSTR>& lpszSoftName);
    // 获取所有已安装常用软件版本号
    void GetSo
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您可以通过以下步骤来获取进程安装路径: 1. 获取进程名 您可以使用Windows API函数如 GetProcessImageFileName() 或 GetModuleFileNameEx() 来获取正在运行的进程的完整路径,例如: ```c++ DWORD pid = GetCurrentProcessId(); char path[MAX_PATH]; HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid); if (hProcess) { if (GetModuleFileNameEx(hProcess, NULL, path, MAX_PATH)) { // 获取到进程完整路径 } CloseHandle(hProcess); } ``` 2. 从注册表获取安装路径 根据您的应用程序类型,您可以从以下注册表项中查找应用程序的安装路径: - 32位系统下的32位应用程序:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths - 64位系统下的32位应用程序:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths - 64位系统下的64位应用程序:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 在这些注册表项下,您可以按照您的应用程序名称和版本号来查找安装路径。例如,如果您的应用程序名称为"myapp.exe",则可以在注册表中查找以下键: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myapp.exe 然后,从该键值中获取应用程序的安装路径。例如,如果应用程序安装在"C:\Program Files\MyApp"目录下,则该键值可能为: "C:\Program Files\MyApp\myapp.exe" 请注意,您需要以管理员权限运行您的应用程序,才能访问注册表中的这些信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值