Я пытаюсь написать сценарий, который можно развернуть и удаленно запустить на нескольких целевых компьютерах, в результате чего существующий ярлык будет заменен на тот, который запускает точно такую же программу, но с высоким приоритетом. Вот мой сценарий:
import os, winshell
from win32com.client import Dispatch
from comtypes.client import CreateObject
# from comtypes.gen import IWshRuntimeLibrary
desktop = winshell.desktop()
path = os.path.join(desktop, 'Test Short.lnk')
target = r'\%HOMEDRIVE%\\Apps\\Ellie Mae\\Encompass\\AppLauncher.exe'
wDir = r'\%HOMEDRIVE%\\Apps\\Ellie Mae\\Encompass'
icon = r'\%SystemRoot%\\Installer\\{3E9C4FBE-4E6C-4389-A4B3-4AE027D0BF2E}\\Icon3E9C4FBE2.ico'
shell = Dispatch('WScript.Shell')
shortcut = shell.CreateShortCut(path)
shortcut.TargetPath = target
shortcut.WorkingDirectory = wDir
shortcut.IconLocation = icon
shortcut.save()
Я столкнулся с ошибкой атрибута, как показано ниже:
AttributeError: Property '<unknown>.TargetPath' can not be set.
Для справки: здесь где я получил большую часть своего кода.
Я попытался найти ответ и наткнулся на эту тему. Однако, следуя принятому предложению, получается:
ImportError: cannot import name IWshRuntimeLibrary
Меня смущает то, почему я не могу установить свойство TargetPath для начала. Как это часто бывает, кажется, что OP из связанной темы и я - единственные два человека, сообщающие об этой проблеме. Кто-нибудь знает, почему это может происходить и что я могу сделать, чтобы это исправить?