1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # 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()
|