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

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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top