如何在Windows上使用Python更改文件夹图标?
发布时间:2020-12-14 02:02:44 所属栏目:Windows 来源:网络整理
导读:我想编写一个实用程序脚本,用于更改具有特定名称的文件夹图标.这在 python中可能吗?如果没有,还有其他方法吗? 谢谢 解决方法 import osimport ctypesfrom ctypes import POINTER,Structure,c_wchar,c_int,sizeof,byreffrom ctypes.wintypes import BYTE,WO
我想编写一个实用程序脚本,用于更改具有特定名称的文件夹图标.这在
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:Windowssystem32SHELL32.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-phone-7 – 适用于Windows Phone 7的中继
- windows – 作为服务运行时,QtService应用程序无
- active-directory – OU使用PowerShell批量许可O
- Windows是否具有命令行的内置ZIP命令?
- windows – 如何从一个NIC中的辅助IP地址使用Web
- 如何调用window.alert(“message”);从C#
- 即使在添加到PATH之后,在Windows CMD中也无法识别
- 将Windows Azure项目从Gallery加载到Visual Stud
- Windows Phone 8.1 Store VS Windows Phone 8.1
- Heroku删除Gemfile.lock,因为它是在Windows上生成
热点阅读