使用MSI的函数可以检测软件是不是安装,获得安装版本信息等,条件是软件为.msi文件安装的。

在使用前建议加上以下头文件及库依赖:

#include

#include

#pragma comment(lib, "Msi.lib")1. 检测软件是不是安装,upgradeCode用于标示从1个版本升级到另外一个版本,1般可以用于判断是不是是同1个软件。

bool CheckExistSoftware(wchar_t *upgradeCode)  //可以通过工具Orca查看安装包相应的upgradeCode

{

wchar_t productCode[39];

if (ERROR_SUCCESS == MsiEnumRelatedProductsW(upgradeCode, 0, 0, productCode))

{

return true;

}

return false;

}

2. 获得软件的安装路径

void GetSoftwareInstallPath(const wchar_t *upgradeCode, wchar_t *installPath, DWORD *pathLength)

{

DWORD i = 0;

UINT result;

wchar_t productCode[39];

for (i = 0; ERROR_NO_MORE_ITEMS != (result = MsiEnumRelatedProductsW(upgradeCode, 0, i, productCode)); i++)

{

if (ERROR_SUCCESS == result)

{

if (ERROR_SUCCESS == MsiGetProductInfoW(productCode, INSTALLPROPERTY_INSTALLLOCATION, installPath, pathLength))

{

return;

}

}

}

wcscpy_s(installPath, 2, L"");

}

php msi安装教程,如何判断msi安装包程序是否安装及安装路径相关推荐

  1. 【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

    <无人机航空摄影测量精品教程>合集目录(Pix4d.CC.EPS.PhotoScan.Inpho) Inpho UASMaster是Trimble公司旗下的一款摄影测量处理软件.本文讲解I ...

  2. Multisim--软件简介及安装教程(含Multisim14安装包资源)

    一.软件介绍(完整安装包资源见文末链接) NI Multisim软件结合了直观的捕捉和功能强大的仿真,能够快速.轻松.高效地对电路进行设计和验证.凭借NI Multisim,您可以立即创建具有完整组件 ...

  3. linux lanmp 安装教程,linux服务器一键安装包lanmp系列教程之一

    在我们安装了linux服务器WEB环境一键安装包lanmp后,可能会有不少疑问还有就是使用过程中出现的问题,下面为大家总结几点比较常见的,如若还有其他疑问,可到wdlinux论坛寻找相关教程. 1.如 ...

  4. Final Cut Pro X 10.5.1苹果视频剪辑软件英/中文TNT版安装教程(附带dmg安装包)

    本文图文讲解安装Final Cut Pro X 10.5.1苹果视频剪辑软件英/中文TNT版,并附带dmg安装包(包含10.4.10.10.5.1),关于FCPX软件的介绍以及使用教程不在本篇讲解. ...

  5. Windows 10 (64位)下 VMware 15虚拟机下载及安装教程(内附安装包)

    一.VMware 15 虚拟机安装包下载 1.官方下载 PS:如果你不想注册或者嫌下载速度慢,请直接看下面2中的百度云链接. 首先,我们访问官网地址 跟着图片操作.鼠标移到红色数字1,点击红色数字2. ...

  6. joomla linux 安装教程,Joomla基础:快速安装包安装

    Joomla在手动安装新模板时可能会非常棘手,因为有很多设置和选项需要配置.为了将您从麻烦中解救出来,幸运的是,有一个与模板一起出现的快速启动包.这是所有必要的材料的全部包装,让你的网站比以往更快地建 ...

  7. mysql pl安装教程_ubuntu 16 mysql安装包安装 (推荐在线安装)

    /etc/init.d/中的文件命名为mysql cp好各种文件后 ./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/my ...

  8. 免费拿走Vivado2017.4安装包及其license(附带安装教程)

    免费拿走Vivado2017.4安装包及其license(附带安装教程) 安装包下载地址:下载链接 license: 这是另外一个连接,你懂的u1qq 安装教程: 1.双击安装包文件夹中的xsetup ...

  9. LabVIEW编程技巧:如何制作安装包程序

    目录 一.LabVIEW中制作安装程序的方法 二.生成应用程序(EXE程序) 二.制作安装包程序 三.总结 当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用 ...

最新文章

  1. ​causal-learn:基于Python的因果发现算法平台
  2. 教育的本质是人点亮人
  3. 1.大数据处理架构Hadoop
  4. 关于动画的几种状态表示的含义以及能够使用2d动画表述为什么要使用3d动画表述
  5. LeetCode 444. 序列重建(拓扑排序)
  6. 集成spring框架的web.xml
  7. static成员函数
  8. 学python能赚钱吗-自学Python三个月能赚钱吗?
  9. Android Multimedia框架总结(十三)CodeC部分之OpenMAX框架初识及接口与适配层实现
  10. 刚刚用上Ubuntu18,Ubuntu20已经出来了
  11. Ueditor、FCKeditor、Kindeditor编辑器漏洞
  12. 虚幻引擎5 C++游戏开发教程
  13. 人工智能会取代程序员吗?
  14. https://www.i5seo.com/
  15. 和计算机相关的祝福语,祝福语精选
  16. 大数据与云计算 | 华科软院2020年期末考试试题及答案
  17. String源码 spilt
  18. java技术--SpringContextUtil类的作用
  19. spider_review-爬虫复习1.0
  20. 存储器Flash页、扇区、块的区别

热门文章

  1. vs代码补全的快捷键_iPad Pro变生产力工具,你还缺个轻量级浏览器端代码编辑器...
  2. python存储json数据_python 存储json数据
  3. 多个pdf合并成一个pdf_十秒教你将多个PDF如何合并成一个PDF
  4. java实现远程系统控制_java实现电脑远程控制完整源代码
  5. MySQL5.5.15_linux下mysql-5.5.15安装详细步骤
  6. php面向对象教学笔记,php学习笔记之面向对象编程
  7. PlayFrameWork实现文件上传,完整流程
  8. 常用Maven插件介绍(下)(转)
  9. Java Selenium - 处理页面弹出窗
  10. StringUtils工具类说明