拋棄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(命令提示字元),輸入:
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。 ->