Iniciar una aplicación de Windows ClickOnce Deployed utilizando VBScript
Pregunta
Tengo una aplicación desplegada ClickOnce que deseo iniciar desde VBScript, similar a lanzar Microsoft Word en el siguiente ejemplo:
Dim word
Set word = CreateObject("Word.Application")
word.Visible = True
El problema es que no sé qué parámetro pasar a la función CreateObject
para iniciar mi aplicación. ¿Dónde encontraría la lista maestra de aplicaciones instaladas en mi PC / el acceso directo para llamar y lanzarlas?
Solución
ClickOnce simplemente no está instalado de esa manera. Normalmente no tienen ganchos COM (para CreateObject), y se instalan en una parte aislada del perfil del usuario (no el perfil de esa máquina). Y no olvide que también puede obtener varias copias / versiones de la misma aplicación a la vez a través de ClickOnce (desde diferentes ubicaciones).
Una opción (en 3.5 / VS2008) podría ser usar el nuevo archivo de asociaciones ... asociar su aplicación con " .foo " archivos, cree un " .foo " vacío archivar y empezar. Aquello podría funcionar. Busque en el cuadro de diálogo Publicar = > Opciones en VS2008.
De lo contrario, básicamente, si desea este tipo de uso, sospecho que necesitará usar msi (es decir, un instalador normal, no ClickOnce) para registrar su aplicación como una biblioteca COM (dll). Tenga en cuenta que .NET no es un buen servidor COM (exe), por lo que no se compara directamente con Word. Si desea un servidor .NET COM, entonces " componentes revisados ??" es su mejor apuesta, pero no suelen ser grandes en la interfaz de usuario.
Para información, el área aislada está en algún lugar alrededor de "% userprofile% \ Local Settings \ Apps \ 2.0 " ;, pero esto es solo por interés para que pueda verlo ... no intente ejecutarlo desde allí.
Otros consejos
Gracias por la información. Eso me hizo darme cuenta de que podía usar un ejecutable .Net en lugar de un vbscript para iniciar mi aplicación.
Dim program As New Process
'Try to run a .Net click-once application
Try
Dim shortcut As String = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)
shortcut = shortcut + "specific\shorctut\path\shortcut.appref-ms"
program .StartInfo.FileName = lpsShortcut
program .Start()
Catch
'If not go to the web site for a fresh install
Try
.Diagnostics.Process.Start("IExplore.exe", "http://url/program.application")
Catch ex As Exception
'Log or Email alert here...
End Try
End Try