使用VBScript启动ClickOnce部署的Windows应用程序

时间:2008-10-27 15:40:44

标签: .net vbscript clickonce launch

我想从VBScript启动ClickOnce部署的应用程序,类似于在以下示例中启动Microsoft Word:

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

问题是我不知道要将CreateObject函数传入哪个参数来启动我的应用程序。我在哪里可以找到我的PC上安装的主应用程序列表/调用它们的快捷方式?

2 个答案:

答案 0 :(得分:2)

ClickOnce就是这样安装的。它们通常没有COM钩子(对于CreateObject),并且安装在用户配置文件的隔离部分(不是该机器的配置文件)。不要忘记您也可以通过ClickOnce(来自不同地点)同时获得同一应用程序的多个副本/版本。

一个选项(在3.5 / VS2008中)可能是使用新的文件关联内容...将您的应用与“.foo”文件关联,创建一个空的“.foo”文件并启动它。那可能有用。查看VS2008中的Publish =>选项对话框。

否则 - 基本上,如果你想要这种用法,我怀疑你需要使用msi(即常规安装程序;而不是ClickOnce)将你的应用程序注册为COM库(dll)。请注意,.NET不能成为一个好的COM服务器(exe) - 因此不能直接与Word进行比较。如果你想要一个.NET COM服务器,那么“服务组件”是你最好的选择 - 但这些在用户界面上并不大。

有关信息,隔离区域位于“%userprofile%\ Local Settings \ Apps \ 2.0”附近,但这只是为了感兴趣所以你可以看到它..不要尝试从那里运行它。

答案 1 :(得分: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