Uso una función que está ligeramente modificada con respecto al ejemplo anterior. La función toma el nombre de ruta y el archivo y devuelve la "Versión del producto"
Function GetProductVersion (sFilePath, sProgram)
Dim objShell, objFolder, objFolderItem, i
If FSO.FileExists(sFilePath & "\" & sProgram) Then
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(sFilePath)
Set objFolderItem = objFolder.ParseName(sProgram)
Dim arrHeaders(300)
For i = 0 To 300
arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i)
'WScript.Echo i &"- " & arrHeaders(i) & ": " & objFolder.GetDetailsOf(objFolderItem, i)
If lcase(arrHeaders(i))= "product version" Then
GetProductVersion= objFolder.GetDetailsOf(objFolderItem, i)
Exit For
End If
Next
End If
End Function
he encontrado que la posición de los atributos se cambia de vez en cuando (no sé por qué) en XP y Vista así que busque el " atributo "versión de producto" y salir del bucle una vez que se encuentre.La línea comentada mostrará todos los atributos y un valor si está disponible
Aquí es una pregunta muy similar acerca de JScript - [Detección de la versión y la compañía Nombre de un exe utilizando JScript] (http: // stackoverflow .com/questions/1674134 /) – Helen