Cómo mantener accesos directos a aplicaciones de corriente / en sincronía?
-
19-09-2019 - |
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?
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