Pregunta

Tengo un actualizador automático aplicación que comprueba si hay nuevas actualizaciones, mueve los archivos existentes incluyendo la app.exe en una nueva carpeta y copia la nueva versión .exe + .dll en la carpeta de aplicaciones

todo lo que ha estado trabajando perfectamente sin problemas pero hay un pequeño problema - los accesos directos creados en el momento de la instalación original de ser válida

¿Hay una manera de solucionar esos atajos mediante programación?

¿Fue útil?

Solución

Puede actualizar un acceso directo a través del objeto WshShell (para identificar las carpetas y ubicaciones), y la Scripting.FileSystemObject para hacer los cambios.

Aquí está un artículo en MSDN acerca del objeto WshShell: http://msdn.microsoft.com/en-us /library/aew9yb99(VS.85).aspx

Este es un ejemplo de la sustitución de un enlace de acceso directo en 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top