Como manter atalhos de aplicativos atual / em sincronia?
-
19-09-2019 - |
Pergunta
Eu tenho um atualizador automático aplicativo que verifica a existência de novas atualizações, move os arquivos existentes, incluindo o app.exe em uma nova pasta e cópias da nova versão .exe + .dll é para o aplicativo pasta ??p>
tudo foi funcionando perfeitamente, sem problemas, mas há uma pequena falha - os atalhos criados no momento da instalação original tornar-se inválido
Existe uma maneira para programaticamente corrigir esses atalhos?
Solução
Você pode atualizar um atalho usando WshShell objeto (para identificar pastas e locais), ea Scripting.FileSystemObject para fazer as alterações.
Aqui está um artigo no MSDN sobre o objeto WshShell: http://msdn.microsoft.com/en-us /library/aew9yb99(VS.85).aspx
Este é um exemplo de substituição de um link de atalho em 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