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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top