Announcement

Collapse
No announcement yet.

Verknüpfungen auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verknüpfungen auslesen

    Hallo,
    Ich lese hier schon eine Weile mit und habe mich nun Registriert weil ich ein Problem habe bei dem mir von euch sicher wer helfen kann.
    Und zwar habe ich ein kleines Problem mir Installer Verknüpfungen wie sie zb. Office erstellt.

    Mit diesem Code lese ich den Pfad der Verknüpfungen aus. Größtenteils klappt das auch.



    Code:
    Public Function getShortcutTarget(ByVal file$) As String
    
                Dim product As New StringBuilder(MaxGuidLength + 1)
                Dim feature As New StringBuilder(MaxFeatureLength + 1)
                Dim component As New StringBuilder(MaxGuidLength + 1)
    
                MsiGetShortcutTarget(file, product, feature, component)
    
                Dim pathLength As Integer = MaxPathLength
                Dim path As New StringBuilder(pathLength)
    
                Dim installState As InstallState = MsiGetComponentPath(product.ToString(), component.ToString(), path, pathLength)
    
                If installState = installState.Local Then
                    Return path.ToString()
                Else
                'Form1.TextBox1.Text = (product.ToString)
    
                End If
    
            End Function
    Doch einige Office Verknüpfungen liefern keinen Pfad. Giebt es hierzu eine Alternativie?

    Bitte um eure Hilfe.

    Grüße Georg

  • #2
    Was bekommst du denn als InstallState von MsiGetComponentPath zurück?

    Comment


    • #3
      Ich bekomme InvalidArg = -2 angezeigt.

      Comment


      • #4
        Dann hat MsiGetShortcutTarget vermutlich schon nichts passendes gefunden. Vielleicht auch mal dessen return Wert prüfen.

        Wenn da wirklich ein Fehler zurückkommt dann soll man laut Doku auf IShellLink zurückgreifen.

        Originally posted by MSDN
        If the function fails, and the shortcut exists, the regular contents of the shortcut may be accessed through the IShellLink interface.

        Comment


        • #5
          Zb. Bei der Komponente Microsoft Office 2010 Upload Center.lnk aus Microsoft Office 2010 bekomme ich mit IShellLink den Pfad der Installerdatei.

          C:\Windows\Installer\{91140000-0011-0000-0000-0000000FF1CE}\msouc.exe
          Und hier sollte nun mit MsiGetComponentPath der echte Pfad ausgelesen werden. Doch wie gesagt kommt es hier zu dem oben genannten Fehler.

          Comment

          Working...
          X