# dump_link.py - dumps information about shell shortcuts # import sys, os from win32com.shell import shell, shellcon import pythoncom import glob from win32com.storagecon import * def DumpLink(fname): shellLink = pythoncom.CoCreateInstance(shell.CLSID_ShellLink, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink) persistFile = shellLink.QueryInterface(pythoncom.IID_IPersistFile) persistFile.Load(fname,STGM_READ) shellLink.Resolve(0, shell.SLR_ANY_MATCH | shell.SLR_NO_UI) fname, findData = shellLink.GetPath(0) print "Filename:", fname, ", UNC=", shellLink.GetPath(shell.SLGP_UNCPRIORITY)[0] print "Description:", shellLink.GetDescription() print "Working Directory:", shellLink.GetWorkingDirectory() print "Icon:", shellLink.GetIconLocation() def FavDumper(nothing, path, names): # called by os.path.walk for name in names: print name, try: DumpLink(name) except pythoncom.com_error: print " - not a link" def DumpFavorites(): favfold = str(shell.SHGetSpecialFolderPath(0, shellcon.CSIDL_FAVORITES)) print "Your favourites are at", favfold os.path.walk(favfold, FavDumper, None) if __name__=='__main__': if len(sys.argv)>1: for fspec in sys.argv[1:]: files = glob.glob(fspec) if files: for file in files: print file DumpLink(file) print else: print "Can not find", fspec else: print "Dumping your favorites folder!" DumpFavorites()