Set oWSH = CreateObject("WScript.Shell")
Set oAPP = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
'##### EDIT HERE #####'
vlcPath = oWSH.ExpandEnvironmentStrings("%PROGRAMFILES%\VideoLAN\VLC\vlc.exe")
vlcSetup = "E:\programas\instaladores\vlc\vlc-setup.exe"
'##### EDIT HERE #####'
If oFSO.FileExists(vlcPath) Then
oAPP.ShellExecute vlcPath, "", "", "open", 1
Else
oAPP.ShellExecute vlcSetup, "", "", "open", 1
End If
Aquí lo tienes, se puede mejorar de varias formas, pero te haces una idea...
=============================
Su script está bien, pero pasa algo:
Cuando un programa se instala en el PC crea una carpeta en "archivos de programas" junto con el ejecutable...
Ejemplo:
"C:\Archivos de programa\VideoLAN\VLC\vlc.exe"
Nota: Cuando uno desinsala algún programa "X" del PC, se elimina todo lo relacionado del programa en el PC, pero en ocasiones quedan las carpetas del programa vacías en "Archivos de programa" y ahí se genera el dilema, ya que cuando está la carpeta del programa y no está el ejecutable el SCRIPT no hace nada, quizás se podría modificar el script para que verifique la carpeta y el ejecutable (aunque esté la carpeta debe estar el .exe) para iniciar el programa y funciones el script.
Ya que si está la carpeta, peo no está el exe (VLC.exe), el scritp no hace nada.
y su Script modificado es el siguiente:
Set oWSH = CreateObject("WScript.Shell")
Set oAPP = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
'##### EDIT HERE #####'
vlcPath = oWSH.ExpandEnvironmentStrings("%PROGRAMFILES%\VideoLAN\VLC\vlc.exe")
'##### EDIT HERE #####'
If oFSO.FileExists(vlcPath) Then
oAPP.ShellExecute vlcPath, "", "", "open", 1
End If
Espero me pueda ayudar por favor...!!!