我想从VBScript启动ClickOnce部署的应用程序,类似于在以下示例中启动Microsoft Word:
Dim word
Set word = CreateObject("Word.Application")
word.Visible = True
问题是我不知道要将CreateObject
函数传入哪个参数来启动我的应用程序。我在哪里可以找到我的PC上安装的主应用程序列表/调用它们的快捷方式?
答案 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