Некоторое время назад я писал о том, как можно создавать ярлыки для программ в Windows. Это всё хорошо, но иногда нам приходится обновлять программы, что может быть связано с изменением пути к программе, а в таком случае надо и поменять к ней ярлык. К сожалению, многие пользователи часто меняют имя ярлыка, так что найти его становится тяжело. Однако, как всегда Python облегчает эту задачу и я покажу как.
Для этого скрипта нам нужен Python 2.4-3.x, PyWin32 модуль и модуль Tim Golden’а winshell. Теперь давайте взглянем на код:
import glob import win32com.client import winshell paths = glob.glob(winshell.desktop() + "\\*.lnk") shell = win32com.client.Dispatch("WScript.Shell") old_program_path = r"\\SomeUNC\path\old.exe" # ищем старые ярлыки и изменяем, если надо, путь к программе for path in paths: shortcut = shell.CreateShortCut(path) target = shortcut.Targetpath if target == old_program_path: shortcut.Targetpath = r"\\newUNC\path\new.exe" shortcut.save()
Во-первых, мы импортируем модули glob, win32com.client и winshell. Затем создаём список путей, среди которых находится и нужный нам ярлык. В нашем случае мы просматриваем рабочий стол пользователя. Но это можно и поменять. Наконец, мы создаём объект шелла и переменную, в которой хранится старый путь к программе. Теперь можно приступать к работе.
Мы проходим по всем путям и используем объект шелла для получения свойств ярлыка. Нам нужно только одно из них - Targetpath, так что мы извлекаем его и проверяем на соответствие старому пути. Если это наш ярлык, то мы изменяем путь на новый и сохраняем ярлык. Вот и всё.
К счастью, необходимость в этом возникает не так часто. Но когда Вам понадобится - Вы будете занть, что Python спешит на помощь.
Комментариев нет:
Отправить комментарий