AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mit Delphi auf MSI Dateien zugreifen!
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Delphi auf MSI Dateien zugreifen!

Ein Thema von TriLine · begonnen am 11. Mär 2005 · letzter Beitrag vom 14. Mär 2005
Antwort Antwort
TriLine

Registriert seit: 11. Mär 2005
2 Beiträge
 
#1

Mit Delphi auf MSI Dateien zugreifen!

  Alt 11. Mär 2005, 10:42
Hallo,

ich bin seit längerem auf der Suche nach der Möglichkeit Windows Installer Dateien (MSI Pakete) per Delphi zu öffnen bzw. auszulesen und analysieren.
Kennt irgendjemand zu diesem Bezug eine verfügbare Komponente die dies einfach ermöglicht?
(Darf auch etwas kosten!)

Für Tipps wäre ich euch Dankbar!

In diesem Sinne....

schonmal danke!

Martin
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 11. Mär 2005, 21:25
der windowsinstallerdienst hat eine com schnittstelle.
diese ist u.a. im win-installer-sdk (plattform-sdk) erklaert.

wenn dir das zu kompliziert ist kannst du aber auch mir dem WiX msi in xsl umwandeln und vice versa.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 11. Mär 2005, 22:07
COM-Schnittstelle? Es gibt ganz gewöhnliche API-Funktionen für den MSI. Ansonsten empfehle ich ganz einfach MSDN-Library durchsuchenOrca (ist auch beim PSDK dabei). Man muss ja nicht alles per Delphi machen wollen.


Edit: Ach so, generic meint vermutlich die Möglichkeit, bspw. über VB-Skript auf Eigenschaften usw. zuzugreifen. Wie das funktioniert, demonstrieren die beiliegenden Skripte, wenn man das Installer-SDK installiert.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 12. Mär 2005, 08:35
Das MSI API ist bei http://www.sf.net/projects/jedi-apilib mit dabei.
  Mit Zitat antworten Zitat
TriLine

Registriert seit: 11. Mär 2005
2 Beiträge
 
#5

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 14. Mär 2005, 08:44
Danke für den Tip mit der Jedi API!

Ist dort eine kleine Demo mitdabei?
Oder kennt jemand einen Link für eine kleine Demo?

Trotzdem Danke für den guten Tip!!!!!
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 14. Mär 2005, 09:28
Eine Demo ist, AFAIK, nicht dabei. Außerdem: Was soll sie denn können? Es gibt so viele Dinge, die man mit dem MSI-API anstellen kann. Die beste Lektüre zum Thema ist eben immer noch das Installer-SDK bzw. das PSDK bzw. das MSDN.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 14. Mär 2005, 13:04
klar com, du kannst dir aus der c:\winnt\system32\msi.dll das interface importieren und dann loslegen.

ungefair so sieht das in meinen prg aus.
Delphi-Quellcode:
          oInstaller:=CreateComObject(DIID_Installer) as Installer;

          state:=oInstaller.FeatureState[c_Verwaltung,c_Feature];
          if state=msiInstallStateLocal then
            oInstaller.ReinstallFeature(c_Verwaltung, c_Feature, msiReinstallModeFileReplace)
          else
            oInstaller.ConfigureFeature(c_Verwaltung, c_Feature, msiInstallStateLocal);
klar du kannst auch die nativ api nutzen, dazu müsste man aber eine übersetzung der msi.h usw. haben.
diese gibt es auch wie oben gepostet, aber ist diese ich glaube für den version1.1.
der installer liegt aber schon in version 3 vor.

hat sich aber nicht soviel getan zwischen 1.1 und 3.
features nachinstallieren geht auf jedenfall in allen versionen.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Mit Delphi auf MSI Dateien zugreifen!

  Alt 14. Mär 2005, 19:22
Zitat von generic:
klar com, du kannst dir aus der c:\winnt\system32\msi.dll das interface importieren und dann loslegen.
Was aber, sorry!, Schwachsinn ist, eben weil es die API-Funktionen gibt. Die COM-Schnittstelle lohnt sich IMHO nur, wenn du via VB- oder JavaScript auf bestimmte Installerfunktionen zugreifen willst.

Zitat:
klar du kannst auch die nativ api nutzen, dazu müsste man aber eine übersetzung der msi.h usw. haben. diese gibt es auch wie oben gepostet, aber ist diese ich glaube für den version1.1. der installer liegt aber schon in version 3 vor.

hat sich aber nicht soviel getan zwischen 1.1 und 3.
Also braucht man, mit anderen Worten, nicht wirklich eine brandaktuelle Version der "msi.h". Das einzige Problem ist ohnehin nur, dass Delphi nichts mit den Headerdateien von C anfangen kann. Würden wir hier nicht mit Delphi sondern mit C arbeiten, dann bräuchten wir nur das jeweils aktuelle PSDK, und wir hätten eine aktuelle "msi.h", und wir könnten sofort loslegen. Oder anders gesprochen: Würde Microsoft neben Headerdateien auch Delphi-Units ausliefern, hättest du die COM-Schnittstelle vermutlich gar nicht erst angesprochen, weil du dann selbst wissen würdest, dass sie überflüssig ist.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz