Come mantenere collegamenti alle applicazioni corrente / in sincronia?
-
19-09-2019 - |
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?
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