1''' Get windows special folders without pythonwin 2 Example: 3 import specialfolders 4 start_programs = specialfolders.get(specialfolders.PROGRAMS) 5 6Code is public domain, do with it what you will. 7 8Luke Pinner - Environment.gov.au, 2010 February 10 9''' 10 11#Imports use _syntax to mask them from autocomplete IDE's 12import ctypes as _ctypes 13from ctypes import create_unicode_buffer as _cub 14from ctypes.wintypes import HWND as _HWND, HANDLE as _HANDLE,DWORD as _DWORD,LPCWSTR as _LPCWSTR,MAX_PATH as _MAX_PATH 15_SHGetFolderPath = _ctypes.windll.shell32.SHGetFolderPathW 16 17#public special folder constants 18DESKTOP= 0 19PROGRAMS= 2 20MYDOCUMENTS= 5 21FAVORITES= 6 22STARTUP= 7 23RECENT= 8 24SENDTO= 9 25STARTMENU= 11 26MYMUSIC= 13 27MYVIDEOS= 14 28NETHOOD= 19 29FONTS= 20 30TEMPLATES= 21 31ALLUSERSSTARTMENU= 22 32ALLUSERSPROGRAMS= 23 33ALLUSERSSTARTUP= 24 34ALLUSERSDESKTOP= 25 35APPLICATIONDATA= 26 36PRINTHOOD= 27 37LOCALSETTINGSAPPLICATIONDATA= 28 38ALLUSERSFAVORITES= 31 39LOCALSETTINGSTEMPORARYINTERNETFILES=32 40COOKIES= 33 41LOCALSETTINGSHISTORY= 34 42ALLUSERSAPPLICATIONDATA= 35 43 44def get(intFolder): 45 _SHGetFolderPath.argtypes = [_HWND, _ctypes.c_int, _HANDLE, _DWORD, _LPCWSTR] 46 auPathBuffer = _cub(_MAX_PATH) 47 exit_code=_SHGetFolderPath(0, intFolder, 0, 0, auPathBuffer) 48 return auPathBuffer.value 49 50 51if __name__ == "__main__": 52 import os 53 print(get(STARTUP)) 54 open(get(STARTUP)+"\\zeronet.cmd", "w").write("cd /D %s\r\nzeronet.py" % os.getcwd())