VBScriptを使用してClickOnceデプロイ済みWindowsアプリケーションを起動する

StackOverflow https://stackoverflow.com/questions/240345

質問

次の例でMicrosoft Wordを起動するのと同様に、VBScriptから起動するClickOnceデプロイ済みアプリケーションがあります:

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

問題は、アプリケーションを起動するために CreateObject 関数に渡すパラメーターがわからないことです。 PCにインストールされているアプリケーションのマスターリスト/それらを起動するために呼び出すショートカットはどこにありますか?

役に立ちましたか?

解決

ClickOnceは、その方法ではインストールされません。通常、COMフック(CreateObject用)はなく、ユーザーのプロファイル(そのマシンのプロファイルではない)の分離された部分にインストールされます。また、ClickOnceを介して(異なる場所から)同じアプリの複数のコピー/バージョンを一度に取得できることも忘れないでください。

1つのオプション(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"の周りのどこかにありますが、これは単に興味があるので見ることができます。そこから実行しないでください。

他のヒント

情報をありがとう。これにより、vbscriptの代わりに.Net実行可能ファイルを使用してアプリケーションを起動できることに気付きました。

    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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top