How to programmatically check for the presence of a Windows Installer-based product by using its product code

Article translations Article translations
Article ID: 974653 - View products that this article applies to.
Expand all | Collapse all

On This Page

INTRODUCTION

Windows Installer provides APIs that let a user query the Windows Installer database for the presence of a particular product. Each product is uniquely identified by its product code, which is a GUID. This article provides code samples that show how to programmatically check for the presence of a Windows Installer-based product by using its product code.

MORE INFORMATION

Call the API from Visual C++

The following is an example of how you can call the MsiGetProductInfoExW() method in Visual C++ to detect the presence of a specific product. The product is specified by its unique product code GUID.
TCHAR szVersion[20];
DWORD cchVersion = 20;
BOOL fInstalled = (ERROR_SUCCESS == MsiGetProductInfoEx (TEXT("{ProductCode}"), NULL, MSIINSTALLCONTEXT_MACHINE, INSTALLPROPERTY_VERSIONSTRING, szVersion, &cchVersion));
In this code example fragment, the fInstalled Boolean variable will contain a TRUE or FALSE value, depending on whether the product that is specified is installed or not installed.

Call the API from VBScript

The following is an example of how you can call the ProductInfo() method on the WindowsInstaller.Installer object in Microsoft Visual Basic Script to detect the presence of a specific product. The product is specified by its unique product code GUID.
 
Dim msi : Set msi = CreateObject("WindowsInstaller.Installer")
On Error Resume Next
Dim version : version = msi.ProductInfo("{ProductCode}", "VersionString")
Dim installed : installed = ( Err.Number = 0 )
In this code example fragment, the installed variable will contain a 0 or 1 value, depending on whether the product that is specified is installed or not installed.

Note The ProductCode property that is passed to the functions in both examples here include braces ({ }) inside the quotation marks. For more information about Windows Installer, visit the following Microsoft Windows Installer MSDN Web page:
http://msdn.microsoft.com/en-us/library/aa367449(VS.85).aspx
For more information about how to obtain the latest version of Windows Installer for your computer, visit the following Microsoft Web page:
http://www.microsoft.com/downloads/details.aspx?familyid=5A58B56F-60B6-4412-95B9-54D056D6F9F4&displaylang=en
For more information, visit the following Microsoft Web pages: Note about the "Applies to" section In addition to the products that are listed in the "Applies to" section, the information in this article also applies to the following product:
  • Windows Installer 4.0
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Properties

Article ID: 974653 - Last Review: July 1, 2010 - Revision: 2.0
APPLIES TO
  • Microsoft Windows Installer 4.5
  • Microsoft Windows Installer 3.1
  • Microsoft Security Essentials
Keywords: 
kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB974653

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com