[C++] Как я могу перечислять / перечислять все установленные приложения в Windows XP?


Answers

Ознакомьтесь с классом Win32_Product WMI (инструментарий управления Windows). Вот учебник по использованию WMI в Python.

Question

Когда я говорю «установленное приложение», в основном я имею в виду любое приложение, видимое в [Панель управления] -> [Установка и удаление программ].

Я бы предпочел сделать это на Python, но C или C ++ тоже прекрасен.




C # .net для получения списка установленного программного обеспечения с использованием WMI в xp и win7 (wmi - единственный способ в win7)

    WqlObjectQuery wqlQuery =
      new WqlObjectQuery("SELECT * FROM Win32_Product");
        ManagementObjectSearcher searcher =
            new ManagementObjectSearcher(wqlQuery);

        foreach (ManagementObject software in searcher.Get()) {
            Console.WriteLine(software["Caption"]);
        }



В репозитории Microsoft Script имеется сценарий для перечисления всего установленного программного обеспечения .

import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Product")
for objItem in colItems:
    print "Caption: ", objItem.Caption
    print "Description: ", objItem.Description
    print "Identifying Number: ", objItem.IdentifyingNumber
    print "Install Date: ", objItem.InstallDate
    print "Install Date 2: ", objItem.InstallDate2
    print "Install Location: ", objItem.InstallLocation
    print "Install State: ", objItem.InstallState
    print "Name: ", objItem.Name
    print "Package Cache: ", objItem.PackageCache
    print "SKU Number: ", objItem.SKUNumber
    print "Vendor: ", objItem.Vendor
    print "Version: ", objItem.Version