This is what I use to pull software information. Tested on NT and Kix 3.63. May be too simple for the gurus
code:
BREAK ON
CLS
$wsinfofile = %TEMP% + "\" + @wksta + ".ini"
DEL $wsinfofile
$rc = WriteProfileString("$WSInfoFile","WsInfo","WsName","@WkSta")
$rc = WriteProfileString("$WSInfoFile","WsInfo","User Name","@FullName")
$rc = WriteProfileString("$WSInfoFile","WsInfo","Date","@month @mdayno @year")
$rootkey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
GOSUB GetInstallSoftware
$rootkey = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
GOSUB GetInstallSoftware
RETURN
;---------------------------------
:GetInstallSoftware
;---------------------------------
$index = 0
$num = 0
$key = EnumKey($rootkey, $index)
WHILE @error = 0
$value = ReadValue($rootkey + $key, "DisplayName")
$uninstall = ReadValue($rootkey + $key, "UninstallString")
IF $value AND $uninstall <> "" ;include $uninstall if you just want to see software that shows up in the add/remove in the control panel. Exclude it if you want all software.
$num = $num + 1
$rc = WriteProfileString("$WSInfoFile", "ProgramInfo", "$Num", "$Value")
ENDIF
;$Num = $Num + 1
$index = $index + 1
$key = EnumKey($rootkey, $index)
LOOP
RETURN