2009-07-24 8 views
1

ich eine Anwendung automatische Aktualisierungsfunktion haben, die nach neuen Updates sucht, bewegt sich die vorhandenen Dateien einschließlich der app.exe in einen neuen Ordner und kopiert die neue Version .exe + .dll in den App-OrdnerWie halten Sie Anwendungsverknüpfungen aktuell/synchron?

alles perfekt gearbeitet hat ohne Probleme, aber es gibt einen kleinen Fehler - die zum Zeitpunkt der ursprünglichen Installation erstellten Verknüpfungen werden ungültig

Gibt es eine Möglichkeit, diese Verknüpfungen programmgesteuert zu reparieren?

+1

Warum sind sie immer ungültig? Ändern Sie den Namen der EXE nach der Aktualisierung oder möchten Sie, dass die Verknüpfungen auf die alte Version verweisen? –

Antwort

1

Sie können eine Verknüpfung mithilfe des WshShell-Objekts (zum Identifizieren von Ordnern und Speicherorten) und des Scripting.FilesystemObject aktualisieren, um die Änderungen vorzunehmen. Hier

ist ein Artikel auf MSDN über das WshShell Objekt: http://msdn.microsoft.com/en-us/library/aew9yb99(VS.85).aspx

Dies ist ein Beispiel eine Verknüpfung, in VB Script zu ersetzen:

Sub ReplaceShortcut (folder, target, targetTarget) 
    set oFso = CreateObject("Scripting.FilesystemObject") 
    Set oFolder = oFso.GetFolder(folder) 
    Set oFiles = oFolder.Files 

    For Each oFile In oFiles 

    If LCase(oFso.GetExtensionName(oFile.name)) = "lnk" Then 
     Set oLnk = oShell.CreateShortcut(oFile.path) 
     If instr(1, oLnk.TargetPath, target, 1)<>0 Then 
      oLnk.TargetPath = replace(oLnk.TargetPath, target, targetTarget) 
      oLnk.Save 
     End If 
    End If 
    Next 
End Sub