2008-10-27 61 views
2

我有一個ClickOnce部署的應用程序我想從VBScript中,類似的發射,以在下面的示例啓動Microsoft Word中的ClickOnce部署Windows應用程序:啓動使用VBScript

Dim word 
Set word = CreateObject("Word.Application") 
word.Visible = True 

問題是我不知道是什麼參數傳入CreateObject函數來啓動我的應用程序。我在哪裏可以找到安裝在我的PC上的應用程序主列表/調用啓動它們的快捷方式?

回答

2

ClickOnce根本就沒有這樣安裝。它們通常不具有COM鉤子(用於CreateObject),並且安裝在用戶配置文件的獨立部分(不是該機器的配置文件)中。不要忘記,您還可以通過ClickOnce(來自不同地點)同時獲取同一應用程序的多個副本/版本。

一個選項(在3.5/VS2008)可能是使用新的文件關聯的東西......與「.foo」此時文件,創建一個空的「.foo」此時文件,並啓動您的應用關聯。這可能會起作用。查看VS2008中的Publish => Options對話框。否則 - 基本上,如果你想要這種類型的用法,我懷疑你將需要使用msi(即常規安裝程序;而不是ClickOnce)將你的應用程序註冊爲COM庫(dll)。請注意,.NET不會構建一個好的COM服務器(exe) - 因此不會直接與Word進行比較。如果你想要一個.NET COM服務器,那麼「服務組件」是你最好的選擇 - 但這些在UI上並不是很大。

有關信息,隔離區域位於「%userprofile%\ Local Settings \ Apps \ 2.0」附近,但這僅僅是爲了讓您感興趣,所以您可以看到它..不要嘗試從此處運行它。

1

感謝您的信息。這讓我意識到我可以使用.Net可執行文件而不是vbscript來啓動我的應用程序。

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