Code: Alles auswählen
;INSTALLPROPERTY_PACKAGENAME = "PackageName";
;INSTALLPROPERTY_TRANSFORMS = "Transforms";
;INSTALLPROPERTY_LANGUAGE = "Language";
;INSTALLPROPERTY_PRODUCTNAME = "ProductName";
;INSTALLPROPERTY_ASSIGNMENTTYPE = "AssignmentType";
;INSTALLPROPERTY_PACKAGECODE = "PackageCode";
;INSTALLPROPERTY_VERSION = "Version";
;INSTALLPROPERTY_PRODUCTICON = "ProductIcon";
;INSTALLPROPERTY_INSTALLEDPRODUCTNAME = "InstalledProductName";
;INSTALLPROPERTY_VERSIONSTRING = "VersionString";
;INSTALLPROPERTY_HELPLINK = "HelpLink";
;INSTALLPROPERTY_HELPTELEPHONE = "HelpTelephone";
;INSTALLPROPERTY_INSTALLLOCATION = "InstallLocation";
;INSTALLPROPERTY_INSTALLSOURCE = "InstallSource";
;INSTALLPROPERTY_INSTALLDATE = "InstallDate";
;INSTALLPROPERTY_PUBLISHER = "Publisher";
;INSTALLPROPERTY_LOCALPACKAGE = "LocalPackage";
;INSTALLPROPERTY_URLINFOABOUT = "URLInfoAbout";
;INSTALLPROPERTY_URLUPDATEINFO = "URLUpdateInfo";
;INSTALLPROPERTY_VERSIONMINOR = "VersionMinor";
;INSTALLPROPERTY_VERSIONMAJOR = "VersionMajor";
buffer_guid = AllocateMemory(39)
buffer_name_len = 500
buffer_name = AllocateMemory(buffer_name_len)
i.l
While MsiEnumProducts_(i,buffer_guid) <> #ERROR_NO_MORE_ITEMS
i+1
;Debug PeekS(buffer_guid) ;all products-guid
If MsiGetProductInfo_(PeekS(buffer_guid),"InstalledProductName",buffer_name,@tmp_buffer_name_len) = 0
;Debug tmp_buffer_name_len
Debug PeekS(buffer_name)
tmp_buffer_name_len = buffer_name_len
EndIf
If MsiGetProductInfo_(PeekS(buffer_guid),"InstallSource",buffer_name,@tmp_buffer_name_len) = 0
;Debug tmp_buffer_name_len
Debug PeekS(buffer_name)
tmp_buffer_name_len = buffer_name_len
EndIf
If MsiGetProductInfo_(PeekS(buffer_guid),"PackageName",buffer_name,@tmp_buffer_name_len) = 0
;Debug tmp_buffer_name_len
Debug PeekS(buffer_name)
tmp_buffer_name_len = buffer_name_len
EndIf
Wend
FreeMemory(buffer_guid)
FreeMemory(buffer_name)
eine alternative wäre , direkt die registry auszulesen (teilweise umständlich ...) oder per wmi (langsamer...) auf die daten zuzugreifen .
da immer mehr packete als xyz.msi zum installieren angeboten werden , wird dieser weg zunehmend interessant
