当前位置: 首页 > 编程语言 > C#

如何为Outlook文件夹设置自定义图标?分享

时间:2023-04-10 13:40:27 C#

如何为Outlook文件夹设置自定义图标?有没有办法使用Outlook对象模型为Outlook文件夹或子文件夹设置自定义图标?从Outlook2010开始,您可以使用MAPIFolder.SetCUstomIcon,如上所述。我最近遇到了同样的挑战,并在更改Outlook文件夹颜色中找到了一小段VBA代码?:joelandreJan12,2015at9:13PM将文件icons.zip解压缩到C:icons将下面的代码定义为VisualBasic宏根据您的需要调整ColorizeOutlookFolders函数TextFunctionGetFolder(ByValFolderPathAsString)AsOutlook.folder'根据文件夹路径返回Outlook文件夹对象'DimTempFolderAsOutlook.folderDimFoldersArrayAsVariantDimiAsIntegerOnErrorGoToGetFolder_Error'删除文件夹路径中的前导斜杠IfLeft(FolderPath,2)="\"ThenFolderPath=Right(FolderPath,Len(FolderPath)-2)EndIf'ConvertfolderpathtoarrayFoldersArray=Split(FolderPath,"")设置TempFolder=Application.Session.Folders.Item(FoldersArray(0))IfNotTempFolderIsNothing然后Fori=1ToUBound(FoldersArray,1)DimSubFoldersAsOutlook.FoldersSetSubFolders=TempFolder.FoldersSetTempFolder=SubFolders.Item(FoldersArray(i))IfTempFolderIsNothingThenSetGetFolder=NothingEndIfNextEndIf'返回临时文件夹r设置GetFolder=TempFolder退出函数GetFolder_Error:设置GetFolder=Nothing退出函数结束函数"C:icons"+FolderColour+".ico")IfNot(folderIsNothing)Then'为文件夹设置自定义图标folder.SetCustomIconmyPic'Debug.Print"settingcolorto"+FolderPath+"as"+FolderColourEndIfEndSubSubColorizeFolderAndSubFolders(strFolderPathAsString,strFolderColourAsString)'此过程将strFolderPath和所有子文件夹给定的文件夹着色DimolProjectRootFolderAsOutlook.folderSetolProjectRootFolder=GetFolder(strFolderPath)DimiAsLongDimolNewFolderAsOutlook.MAPIFolderDimolTempFolderAsOutlook.MAPIFolderDimstrTempFolderPathAsString'给文件夹上色CallColorizeOneFolder(strFolderPath,strFolderColour)'循环浏览当前文件夹中的项目。Fori=olProjectRootFolder.Folders.CountTo1Step-1SetolTempFolder=olProjectRootFolder.Folders(i)strTempFolderPath=olTempFolder.FolderPath'在VB编辑器的即时窗口中打印文件夹路径和名称'Debug.PrintsTempFolderPath'为文件夹着色CallColorizeOneFolder(strTempFolderPath,strFolderColour)NextForEacholNewFolderInolProjectRootFolder.Folders'递归调用'Debug.PrintolNewFolder.FolderPathCallColorizeFolderAndSubFolders(olNewFolder.FolderPath,strFolderColour)NextEndSubSubColorizeOutlookFolders()CallColorizeFolderAndSubColorizeOutlookFolders("People","blue")调用ColorizeFolderAndSubFolders("\PersonalDocuments00-Mgmt-CH200-Projects","re??d")Mgmt-CH800-Product","magenta")调用ColorizeFolderAndSubFolders("\PersonalDocuments00-Mgmt-CH600-Departments","grey")CallColorizeFolderAndSubFolders("\Mailbox-DanWilsonInboxCustomers","grey")EndSub在对象ThisOutlookSession中,定义如下函数:PrivateSubApplication_Startup()ColorizeOutlookFoldersEndSuband为了不给子文件夹上色,可以使用ColorizeOneFolder函数代替ColorizeFolderAndSubFolders,例如SubColorizeOutlookFolders()CallColorizeOneFolder("\PersonalDocuments00-Mgmt-CH100-People","blue")CallColorizeOneFolder("\PersonalDocuments00-Mgmt-CH200-Projects,"red")调用ColorizeOneFolder("\PersonalDocuments00-Mgmt-CH500-Meeting","green")CallColorizeOneFolder("\PersonalDocuments00-Mgmt-CH800-Product","magenta")调用ColorizeOneFolder("\PersonalDocuments00-Mgmt-CH600-Departments","grey")CallColorizeOneFolder("\Mailbox-DanWilsonInboxCustomers","grey")EndSub当您在文件夹之间移动子文件夹时,它们应该保留它们的颜色直到下一次重新启动启动Outlook据我所知,这在Outlook2007中是不可能的。在Outlook2010中,您可以使用MAPIFolder.SetCustomIcon。详情见MSDN:http://msdn.microsoft.com/en-us/library/ff184775.aspx2010和2007之间的切换以下MSDN网页上的SetCustomIcon方法列表仅显示2010的SetCustomIcon方法:http://msdn.microsoft.com/en-us/library/bb645002.aspx以上是C#学习教程:如何设置Outlook文件夹的自定义图标?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: