Domanda

Ho un programma di aggiornamento automatico dell'applicazione che verifica la presenza di nuovi aggiornamenti, sposta i file esistenti compreso l'app.exe in una nuova cartella e copia la nuova versione .exe + dll di applicazione nella cartella

tutto sta funzionando perfettamente senza problemi ma c'è un piccolo problema - i collegamenti creati al momento della installazione originale più validi

C'è un modo per risolvere a livello di codice quelle scorciatoie?

È stato utile?

Soluzione

È possibile aggiornare un collegamento utilizzando oggetto WshShell (per identificare le cartelle e le posizioni), e lo Scripting.FileSystemObject per apportare le modifiche.

Ecco un articolo su MSDN su dell'oggetto WshShell: http://msdn.microsoft.com/en-us /library/aew9yb99(VS.85).aspx

Questo è un esempio di sostituzione di un collegamento di scelta rapida in VB Script:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top