Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Advertised Shortcut


8 replies to this topic

Holger_G

Holger_G
  • Full Members
  • 155 posts

Posted 25 May 2010 - 10:30

Hallo,

wie kann man auf einfache Art und Weise einen installierten Advertised Shortcut einer Advertise Installation via einer .NET Applikation ermitteln und starten? Lässt sich das mittels MSI APIs und/oder DTF elegant lösen?

Danke für Hilfe
Holger



Holger_G

Holger_G
  • Full Members
  • 155 posts

Posted 17 June 2010 - 08:51

Hat da evtl. noch jemand eine Idee?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 June 2010 - 09:08

Also du kannst per MSI API abfragen, ob das Produkt advertised oder installiert ist, und du kannst es auch installieren. Aber mir ist nicht klar, was du mit dem Shortcut vorhast?

Holger_G

Holger_G
  • Full Members
  • 155 posts

Posted 21 June 2010 - 07:52

QUOTE (Stefan Krueger @ 2010-06-18 09:08)
Also du kannst per MSI API abfragen, ob das Produkt advertised oder installiert ist, und du kannst es auch installieren. Aber mir ist nicht klar, was du mit dem Shortcut vorhast?

'Shortcut' ist wohl nicht wirklich treffend in diesem Kontext. Ich möchte innerhalb einer Applikation feststellen, ob ein Produkt installiert ist (Full oder Advertised) und falls ja, eine Applikation des Produkts starten.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 June 2010 - 16:43

Wie wärs dann mit MsiQueryProductState ?

Holger_G

Holger_G
  • Full Members
  • 155 posts

Posted 23 June 2010 - 08:11

QUOTE (Stefan Krueger @ 2010-06-22 16:43)
Wie wärs dann mit MsiQueryProductState ?

Angenommen das Produkt ist Advertised, wie könnte ich dann ein executable der Installation starten? Manuell klicke ich ja einfach auf den advertised Shortcut, aber wie mache ich das von meiner Applikation aus?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 June 2010 - 11:53

Hmm, hast du dir mal folgende angeschaut:
MsiInstallProduct
MsiConfigureProduct(Ex)

Bestimmt gibt es auch in einem Blog einen Artikel der beschreibt, was beim Klick auf einen Advertised Shortcut passiert. Nur habe ich gerade nichts passendes zur Hand.

akerl

akerl
  • Full Members
  • 104 posts

Posted 25 June 2010 - 10:01

Da kann ich Stefan nur zustimmen. Grundsätzlich ist es ja so, dass im Advertsed Shortcut der Pfad zu der Ressource enthalten ist, die gestartet werden soll. Allerdings liegt diese Infos nicht in normaler Pfad-Schreibweise dort, sondern als Darwin Descriptor. Hierbei handelt es sich letztlich um eine Art Trigger für die Windows-Shell. Bei einem Klick auf den Shortcut versucht die Shell zunächst das Ziel zu starten. Geht ja nicht, da hier der DD steht, und die Shell damit nichts anfangen kann. Nun kontaktiert die Shell die Windows Installer Infrastruktur und fragt ob sie mit dem Shortcut was anfangen kann. MSI ruft intern nun MsiGetShortcutTarget() auf. Das Ergebnis ist der Productcode, das Feature und die ComponentId. Über diese Eigenschaften kann nun der KeyPath der Komponente durch MsiGetComponentPath() bestimmt werden. Letztlich ist das die Ressource die dann gestartet wird. Natürlich führt der MSI zuvor noch Checks bzgl. der Existenz der KeyPath-Ressourcen durch (Auto-Repair).
Die Funktionalität gibt es natürlich auch in DTF.

HTH

Andreas Kerl

Inside Windows Installer 4.5
ISBN 3-86645-431-7


Holger_G

Holger_G
  • Full Members
  • 155 posts

Posted 30 June 2010 - 07:36

Danke euch beiden, das bringt mehr Licht ins Dunkel.