查看: 1249|回复: 3
打印 上一主题 下一主题

北京pk10冠亚和值统计: [教程] 通过MsiQueryProductState检测VC运行库是否安装

[复制链接]
  • TA的每日心情
    慵懒
    2016-12-20 21:05
  • 江西快3走势图开奖结果 www.d0ht9.cn 签到天数: 12 天

    [LV.3]偶尔看看II

    10

    主题

    48

    帖子

    600

    积分

    积分
    600
    跳转到指定楼层
    楼主
    发表于 2018-7-1 17:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 Nanlon 于 2018-7-1 17:48 编辑

    MsiQueryProductState

    MsiQueryProductState的输入参数为产品ID,其返回值为产品安装状态,若返回值为INSTALLSTATE_DEFAULT则表示已安装。

    返回值及安装状态:
    INSTALLSTATE 返回值       产品的安装状态
    INSTALLSTATE_UNKNOWN -1 该产品未被广告或安装
    INSTALLSTATE_ADVERTISED         1 该产品已广告但未安装
    INSTALLSTATE_ABSENT 2 该产品为不同的用户安装            
    INSTALLSTATE_DEFAULT 5 该产品已为当前用户安装


    NSIS检测代码示例:
    1. Name "msi"
    2. OutFile ".\msi.exe"
    3. InstallDir $TEMP

    4. XPStyle on
    5. InstallColors /windows
    6. ShowInstDetails show

    7. Section -MsiQueryProductState
    8.         System::Call 'msi::MsiQueryProductState(t"{1D8E6291-B0D5-35EC-8441-6616F567A0F7}")i.R0'
    9.         DetailPrint "返回值:$R0"
    10.         IntCmp $R0 5 INSTALLSTATE_DEFAULT STATE_OTHER
    11.         
    12.         STATE_OTHER:
    13.         IntCmp $R0 1 INSTALLSTATE_ADVERTISED INSTALLSTATE_ABSENT INSTALLSTATE_UNKNOWN
    14.         
    15.         INSTALLSTATE_UNKNOWN:
    16.         DetailPrint "安装状态:该产品未被广告或安装"
    17.         Goto Done
    18.         
    19.         INSTALLSTATE_ADVERTISED:
    20.         DetailPrint "安装状态:该产品已广告但未安装"
    21.         Goto Done
    22.         
    23.         INSTALLSTATE_ABSENT:
    24.         DetailPrint "安装状态:该产品为不同的用户安装"
    25.         Goto Done
    26.         
    27.         INSTALLSTATE_DEFAULT:
    28.         DetailPrint "安装状态:该产品已为当前用户安装"
    29.         
    30.         Done:
    31. SectionEnd
    复制代码

    附:最新VC运行库GUID

    VCredist_2005x64 - 8.0.61000

    {ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}

    VCredist_2005x86 - 8.0.61001

    {710f4c1c-cc18-4c49-8cbf-51240c89a1a2}

    VCredist_2008x64 - 9.030729.6161

    {5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}

    VCredist_2008x86 - 9.030729.6161

    {9BE518E6-ECC6-35A9-88E4-87755C07200F}

    VCredist_2010x64 - 10.0.40219

    {1D8E6291-B0D5-35EC-8441-6616F567A0F7}

    VCredist_2010x86 - 10.0.40219

    {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}

    VCredist_2012x64 - 11.0.61030.0

    Additional Runtime:

    {37B8F9C7-03FB-3253-8781-2517C99D7C00}

    Minimum Runtime:

    {CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}

    VCredist_2012x86 - 11.0.61030.0

    Additional Runtime:

    {B175520C-86A2-35A7-8619-86DC379688B9}

    Minimum Runtime:

    {BD95A8CD-1D9F-35AD-981A-3E7925026EBB}

    VCredist_2013x64 - 12.0.40664.0

    Additional Runtime:

    {010792BA-551A-3AC0-A7EF-0FAB4156C382}

    Minimum Runtime:

    {53CF6934-A98D-3D84-9146-FC4EDF3D5641}

    VCredist_2013x86 - 12.0.40664.0

    Additional Runtime:

    {D401961D-3A20-3AC7-943B-6139D5BD490A}

    Minimum Runtime:

    {8122DAB1-ED4D-3676-BB0A-CA368196543E}

    VCredist_2015x64 - 14.0.24516.0

    Additional Runtime:

    {6B66663C-055F-3A2E-A09D-168840A82362}

    Minimum Runtime:

    {EE6E34BF-D825-384C-AFF5-305DF5CFAF5A}

    VCredist_2015x86 - 14.0.24516.0

    Additional Runtime:

    {B4EB15A2-6582-346E-8501-B6E907F23B80}

    Minimum Runtime:

    {7B82F823-A226-3463-B438-AF4DDDE2B810}

    VCredist_2017x64 - 14.14.26429.4

    Additional Runtime:

    {B12F584A-DE7A-3EE3-8EC4-8A64DBC0F2A7}

    Minimum Runtime:

    {03EBF679-E886-38AD-8E70-28658449F7F9}

    VCredist_2017x86 - 14.14.26429.4

    Additional Runtime:

    {6F0267F3-7467-350D-A8C8-33B72E3658D8}

    Minimum Runtime:

    {7753EC39-3039-3629-98BE-447C5D869C09}




    评分

    参与人数 1金钱 +20 收起 理由
    mefcl + 20 哈哈,你的运行库安装包越来越完善了.

    查看全部评分

    该用户从未签到

    1

    主题

    147

    帖子

    754

    积分

    积分
    754

    NSIS元老

    沙发
    发表于 2018-7-4 17:46:54 | 只看该作者
    很早很早以前还写过一个头文件专门用来检测这个,只不过没发出来。最初想法来自 X-star,不过还是我自己最终完善了代码。当时每个版本只支持单一 GUID,但是后来发现现在同一个版本运行库中英文包的产品 GUID 也不同,也没改代码,且这些年运行库又有版本更新,需要收集更多产品 GUID,就再没去维护过这个头文件了。

    该用户从未签到

    1

    主题

    147

    帖子

    754

    积分

    积分
    754

    NSIS元老

    板凳
    发表于 2018-7-9 19:50:45 | 只看该作者
    这是当时的那个头文件,没怎么维护过。如果楼主想继续完善,可以共同将这个头文件完成并支持最新 VC 运行库。

    VC运行库检测.zip

    4.04 KB, 下载次数: 20

  • TA的每日心情
    慵懒
    2016-12-20 21:05
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    10

    主题

    48

    帖子

    600

    积分

    积分
    600
    地板
     楼主| 发表于 2018-7-10 08:49:33 | 只看该作者
    jiake 发表于 2018-7-9 19:50
    这是当时的那个头文件,没怎么维护过。如果楼主想继续完善,可以共同将这个头文件完成并支持最新 VC 运行库 ...

    最近太忙了!有时间的话我试试看,就是收集GUID真的是不容易??!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|联系我们|江西快3走势图开奖结果    

    GMT+8, 2019-4-20 18:35 , Processed in 0.024792 second(s), 18 queries , MemCache On.

    Powered by Discuz!X3.3

    Copyright © 2015-2018 江西快3走势图开奖结果

    快速回复 江西快3走势图开奖结果 返回列表
  • 候选企业:亿利资源集团 2019-04-20
  • 你遇到了吗用户吐槽升iOS 11.4后耗电过快用户吐槽升iOS11后耗电过快-行情资讯 2019-04-20
  • 凤凰、永久、二八车,那些年满街的自行车,您还记得吗? 2019-04-11
  • 云南普洱市澜沧县发生3.0级地震 震源深度8千米 2019-04-11
  • 湖南建立企业研发投入后补助机制 2019-04-04
  • 故宫文创产品在韩国展出 2019-04-01
  • 重庆将建第二国际机场发改委已启动前期规划 2019-04-01
  • 全省首条民国风情旅游专线湖州德清“开跑” 2019-03-31
  • 92岁大爷成网红:每天直播唱歌 2019-03-31
  • 咱主张不由市场发挥全部作用,是因为市场受需求引导,而需求又分正义需求和邪恶需求。 2019-03-29
  • 长治职业技术学院“学习新思想千万师生同上一堂课活动”首场授课开讲 2019-03-29
  • 鹅卵石创作球星马赛克肖像 2019-03-26
  • 高德置地广场荣获RICS China Awards 2018三项殊荣 2019-03-16
  • 我国社会主义社会是无阶级的阶层社会,不存在剥削阶级和被剥削阶级,但存在富裕阶层和贫困阶层。 2019-03-15
  • 12支滑水队齐聚武宁 演绎水上版“速度与激情”(图) 2019-03-15
  • 212| 97| 60| 755| 326| 206| 862| 314| 240| 8|