from win32com.shell import shell from win32com.shell.shellcon import * sf = shell.SHGetDesktopFolder() print "Shell Folder is", sf names = [] for i in sf: # Magically calls EnumObjects name = sf.GetDisplayNameOf(i, SHGDN_NORMAL) names.append(name) # And get the enumerator manually enum = sf.EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN) num = 0 for i in enum: num += 1 if num != len(names): print "Should have got the same number of names!?" print "Found", len(names), "items on the desktop" for name in names: print name