Avvio di un'applicazione Windows distribuita ClickOnce mediante VBScript
Domanda
Ho un'applicazione distribuita ClickOnce che voglio avviare da VBScript, simile all'avvio di Microsoft Word nel seguente esempio:
Dim word
Set word = CreateObject("Word.Application")
word.Visible = True
Il problema è che non so quale parametro passare nella funzione CreateObject
per avviare la mia applicazione. Dove troverei l'elenco principale delle applicazioni installate sul mio PC / il collegamento da chiamare per avviarle?
Soluzione
ClickOnce semplicemente non è installato in questo modo. In genere non hanno hook COM (per CreateObject) e sono installati in una parte isolata del profilo dell'utente (non nel profilo di quella macchina). E non dimenticare che puoi anche ottenere più copie / versioni della stessa app contemporaneamente tramite ClickOnce (da posizioni diverse).
Un'opzione (in 3.5 / VS2008) potrebbe essere quella di usare la nuova roba di associazioni di file ... associare la tua app a " .foo " file, crea un vuoto " .foo " file e avviarlo. Potrebbe funzionare. Guarda la finestra di dialogo Pubblica = > Opzioni in VS2008.
Altrimenti, fondamentalmente, se si desidera questo tipo di utilizzo, sospetto che sarà necessario utilizzare msi (ovvero un programma di installazione regolare; non ClickOnce) per registrare l'app come libreria COM (dll). Nota che .NET non è un buon server COM (exe), quindi non confronta direttamente con Word. Se desideri un server COM .NET, "componenti serviti" sono la soluzione migliore, ma non tendono ad essere grandi nell'interfaccia utente.
Per informazioni, l'area isolata è da qualche parte intorno a "% userprofile% \ Local Settings \ Apps \ 2.0 " ;, ma questo è solo per interesse in modo da poterlo vedere .. non provare a eseguirlo da lì.
Altri suggerimenti
Grazie per le informazioni. Questo mi ha fatto capire che avrei potuto usare un eseguibile .Net invece di un vbscript per avviare la mia applicazione.
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