大佬教程收集整理的这篇文章主要介绍了如何在Windows上使用Python更改文件夹图标?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import os import ctypes from ctypes import POINTER,Structure,c_wchar,c_int,sizeof,byref from ctypes.wintypes import BYTE,WORD,DWORD,LPWSTR,LPSTR import win32api HICON = c_int LPTSTR = LPWSTR TCHAR = c_wchar MAX_PATH = 260 FCSM_ICONFILE = 0x00000010 FCS_FORCEWRITE = 0x00000002 SHGFi_iCONLOCATION = 0x000001000 class GUID(StructurE): _fields_ = [ ('Data1',DWORD),('Data2',WORD),('Data3',('Data4',BYTE * 8)] class SHFOLDERCUSTOMSETTinGS(StructurE): _fields_ = [ ('dwSize',('dwMask',('pvid',POINTER(GUID)),('pszWebViewTemplate',LPTSTR),('cchWebViewTemplate',('pszWebViewTemplateVersion',('pszInfoTip',('cchInfoTip',('pclsid',('dwFlags',('pszIconFile',('cchIconFile',('iIconIndex',c_int),('pszlogo',('cchlogo',DWORD)] class SHFILEINFO(StructurE): _fields_ = [ ('hIcon',HICON),('iIcon',('dwAttributes',('szDisplayName',TCHAR * MAX_PATH),('szTypename',TCHAR * 80)] def seticon(folderpath,iconpath,iconindeX): """Set folder icon. >>> seticon(".","C:\\Windows\\system32\\SHelL32.dll",10) """ sHell32 = ctypes.windll.sHell32 folderpath = unicode(os.path.abspath(folderpath),'mbcs') iconpath = unicode(os.path.abspath(iconpath),'mbcs') fcs = SHFOLDERCUSTOMSETTinGS() fcs.dwSize = sizeof(fcs) fcs.dwMask = FCSM_ICONFILE fcs.pszIconFile = iconpath fcs.cchIconFile = 0 fcs.iIconIndex = iconindex hr = sHell32.SHGetSetFolderCustomSetTings(byref(fcs),folderpath,FCS_FORCEWRITE) if hr: raise WindowsError(win32api.Formatmessage(hr)) sfi = SHFILEINFO() hr = sHell32.SHGetFileInfoW(folderpath,byref(sfi),sizeof(sfi),SHGFi_iCONLOCATION) if hr == 0: raise WindowsError(win32api.Formatmessage(hr)) index = sHell32.SHell_GetCachedImageIndexW(sfi.szDisplayName,sfi.iIcon,0) if index == -1: raise WindowsError() sHell32.SHupdateImageW(sfi.szDisplayName,indeX)
以上是大佬教程为你收集整理的如何在Windows上使用Python更改文件夹图标?全部内容,希望文章能够帮你解决如何在Windows上使用Python更改文件夹图标?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。