首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否通过perl脚本安装了VC++ Redistributable 10

检查是否通过perl脚本安装了VC++ Redistributable 10
EN

Stack Overflow用户
提问于 2019-05-15 17:20:37
回答 1查看 166关注 0票数 0

我正在编写一个perl脚本来检查系统中是否已经安装了Visual C++ Redistributable 2010 x64。

根据https://blogs.msdn.microsoft.com/astebner/2010/05/05/mailbag-how-to-detect-the-presence-of-the-visual-c-2010-redistributable-package/的说法,我遇到了两种方式

来读取注册表中的相应条目。或者使用MsiQueryProductStateA

在没有out的情况下,使用Win32::TieRegistry是不可能的。

但是使用use Win32::API是一种选择

尝试在Win32::API中使用MsiQueryProductStateA

代码语言:javascript
复制
use Win32::API;
$function = Win32::API::More->Import(
    'msi', 'INSTALLSTATE  MsiQueryProductStateA(LPCSTR szProduct)'
);

本应获取一些有效的返回值,但得到错误

代码语言:javascript
复制
Win32::API::parse_prototype: WARNING unknown output parameter type 'INSTALLSTATE' at C:\Program Files\HP\HP BTO Software\nonOV\Perl\a\lib/5.26.2/MSWin32-x64-multi-thread/Win32/API.pm line 600. 4294967294

有没有人可以解释一下如何使用/导入返回类型以及如何使用它?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 14:35:56

展示如何在C++ (而不是perl)中实现,您可以参考一下。

我安装了Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019

返回值5表示"The product is installed for the current user.

在注册表中查找产品代码如下所示:

HKEY_CLASSES_ROOT\Installer\Dependencies\Microsoft.VS.VC_RuntimeAdditionalVSU_x86,v14

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56145780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档