Как поддерживать актуальность/синхронизацию ярлыков приложений?
-
19-09-2019 - |
Вопрос
У меня есть средство автоматического обновления приложений, которое проверяет наличие новых обновлений, перемещает существующие файлы, включая app.exe, в новую папку и копирует новую версию .exe + .dll в папку приложения.
все работает отлично, без проблем, но есть один небольшой сбой - ярлыки, созданные во время первоначальной установки, становятся недействительными.
Есть ли способ программно исправить эти ярлыки?
Решение
Вы можете обновить ярлык, используя объект WshShell (для идентификации папок и расположений) и Scripting.FilesystemObject для внесения изменений.
Вот статья в MSDN об объекте WshShell:http://msdn.microsoft.com/en-us/library/aew9yb99(VS.85).aspx
Это пример замены ярлыка ссылки в 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
Не связан с StackOverflow