拋棄Windows的默認圖標吧,讓自己的程序所在的目錄擁有個性化的FolderIcon!其實作起來簡單得很,實際上只需要一個Desktop.ini文件即可,下面我會從兩個方面說明。
1.手動方式:
首先要在需要改變的文件夾中創建一個Desktop.ini文件,例子如下:
->[.ShellClassInfo]
ConfirmFileOp=0
InfoTip=我自己的文件夾
IconIndex=0
IconFile=MyFolder.ico->
解釋:
參數ConfirmFileOp設為0--防止用戶在移動或刪除此文件夾時彈出的“你正在刪除系統目錄”的警告。
參數IconFile指定為將要改變的圖標文件的位置,可以是Icon、Bmp、exe或者dll文件,上例中的圖標文件也放置到同一目錄中。
參數IconIndex就可以指定文件的索引,如果此圖標文件是Icon文件的話,IconIndex就設為0。
參數InfoTip用來設定此Folder在Windows中的Tooltip。
下一步打開CMD(命令提示符),輸入:
->attrib si:MyFolder->
i:MyFolder指的就是我要改圖標的目錄的路徑。此項操作是讓你的文件夾成為系統文件夾。
好了,經過手動處理後現在的目錄已經改變了風格。
2.編程方式:
這種方式是用我喜歡的VB來實現的,實現起來也同樣Easy。
只需要兩個API函數,一個用來操作Ini文件的建立,另一個的功能等同於手動方式中的attrib s。
->OptionExplicit
PrivateDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallpFileNameAsString)AsLong
PrivateDeclareFunctionPathMakeSystemFolderLib"shlwapi.dll"Alias"PathMakeSystemFolderA"(ByValpszPathAsString)AsLong
PrivateSubForm_Load()
'以下幾步用於創建Desktop.ini文件
'不存在ini文件時,會自己創建ini
WritePrivateProfileString".ShellClassInfo","ConfirmFileOp","0",App.Path&"desktop.ini"
WritePrivateProfileString".ShellClassInfo","InfoTip","我的文件夾因此而改變",App.Path&"desktop.ini"
WritePrivateProfileString".ShellClassInfo","IconIndex","0",App.Path&"desktop.ini"
WritePrivateProfileString".ShellClassInfo","IconFile","MyFolder.ico",App.Path&"desktop.ini"
'讓文件夾成為系統文件夾
PathMakeSystemFolderApp.Path
EndSub->
需要進一步說明的是:
->WritePrivateProfileString".ShellClassInfo","IconFile","MyFolder.ico",App.Path&"desktop.ini"->
可以改為:
->WritePrivateProfileString".ShellClassInfo","IconFile",App.EXEName&".exe",App.Path&"desktop.ini"->
果你使用的是主窗口的圖標的話,VB編譯後的程序的圖標的索引也是使用的0。->