Everything else that doesn't fall into one of the other PB categories.
-
bingo
- Enthusiast

- Posts: 210
- Joined: Fri Apr 02, 2004 12:21 pm
- Location: germany/thueringen
-
Contact:
Post
by bingo »
to enumerate all msi-products ...
Code: Select all
buffer_guid = AllocateMemory(39)
Repeat
If MsiEnumProducts_(i,buffer_guid) = #ERROR_NO_MORE_ITEMS : Break : EndIf
i+1
Debug PeekS(buffer_guid) ;all products-guid
ForEver
FreeMemory(buffer_guid)
but how use
MsiGetProductInfo to find "INSTALLPROPERTY_PRODUCTNAME" ?
sample:
http://msdn.microsoft.com/library/defau ... ontext.asp
["1:0>1"]
-
va!n
- Addict

- Posts: 1104
- Joined: Wed Apr 20, 2005 12:48 pm
Post
by va!n »
va!n aka Thorsten
Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
-
bingo
- Enthusiast

- Posts: 210
- Joined: Fri Apr 02, 2004 12:21 pm
- Location: germany/thueringen
-
Contact:
Post
by bingo »
Code: Select all
buffer_guid = AllocateMemory(39)
Repeat
If MsiEnumProducts_(i,buffer_guid) = #ERROR_NO_MORE_ITEMS : Break : EndIf
i+1
Debug PeekS(buffer_guid) ;all products-guid
bufferlen = 255
buffer.s = Space(bufferlen)
Debug MsiGetProductInfo_(PeekS(buffer_guid),"INSTALLPROPERTY_PRODUCTNAME",@buffer,@bufferlen) ;allways error 1608 = ERROR_UNKNOWN_PROPERTY ?
Debug buffer
Debug bufferlen
ForEver
FreeMemory(buffer_guid)

["1:0>1"]
-
bingo
- Enthusiast

- Posts: 210
- Joined: Fri Apr 02, 2004 12:21 pm
- Location: germany/thueringen
-
Contact:
Post
by bingo »
Code: Select all
;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)
now ... the
right strings for szProperty (MsiGetProductInfo) and it works

["1:0>1"]