Frage

Ich habe eine ClickOnce -Bereitstellung, die ich von VBScript aus starten möchte, ähnlich wie das Start von Microsoft Word im folgenden Beispiel:

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

Das Problem ist, dass ich nicht weiß, welchen Parameter ich in die übergeben soll CreateObject Funktion zum Starten meiner Anwendung. Wo würde ich die Masterliste der Anwendungen finden, die auf meinem PC/der Verknüpfung installiert sind, um sie zu starten?

War es hilfreich?

Lösung

ClickOnce wird einfach nicht so installiert. Sie haben normalerweise keine COM -Hooks (für createObject) und sind in einem isolierten Teil des Benutzerprofils (nicht in dem Profil dieses Geräts) installiert. Und vergessen Sie nicht, dass Sie auch mehrere Kopien/Versionen derselben App gleichzeitig über ClickOnce (an verschiedenen Orten) erhalten.

Eine Option (in 3.5/VS2008) könnte darin bestehen, die neuen Datei -Assoziations -Sachen zu verwenden ... Ihre App mit ".foo" -Dateien zu verknüpfen, eine leere ".foo" -Datei zu erstellen und zu starten. Das könnte funktionieren. Sehen Sie sich das Dialog mit Publish => Optionen in VS2008 an.

Andernfalls - wenn Sie diese Art von Nutzung wünschen, müssen Sie MSI (dh ein reguläres Installateur; nicht ClickOnce) verwenden, um Ihre App als COM -Bibliothek (DLL) zu registrieren. Beachten Sie, dass .NET keinen guten COM -Server (EXE) macht - daher nicht direkt mit Word verglichen. Wenn Sie einen .NET -COM -Server möchten, sind "Serviced Components" die beste Wahl - aber diese sind in der UI nicht groß.

Für Informationen befindet sich der isolierte Bereich irgendwo in der Nähe "%userProfile% Lokale Einstellungen Apps 2.0", aber dies ist nur für Interesse, damit Sie ihn sehen können. Versuchen Sie nicht, ihn von dort aus auszuführen.

Andere Tipps

Danke für die Information. Das hat mir klar gemacht, dass ich eine .NET -ausführbare Datei anstelle eines VBSCripts verwenden konnte, um meine Anwendung zu starten.

    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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top