I'm trying to read the target file/directory of a shortcut (.lnk
) file from Python. Is there a headache-free way to do it? The .lnk spec [PDF] is way over my head.
I don't mind using Windows-only APIs.
My ultimate goal is to find the "(My) Videos"
folder on Windows XP and Vista. On XP, by default, it's at %HOMEPATH%\My Documents\My Videos
, and on Vista it's %HOMEPATH%\Videos
. However, the user can relocate this folder. In the case, the %HOMEPATH%\Videos
folder ceases to exists and is replaced by %HOMEPATH%\Videos.lnk
which points to the new "My Videos"
folder. And I want its absolute location.
Create a shortcut using Python (via WSH)
import sys
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut("t:\\test.lnk")
shortcut.Targetpath = "t:\\ftemp"
shortcut.save()
Read the Target of a Shortcut using Python (via WSH)
import sys
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut("t:\\test.lnk")
print(shortcut.Targetpath)