用Visual Basic設(shè)計(jì)個(gè)性化文件夾圖標(biāo)

2010-08-28 10:46:04來源:西部e網(wǎng)作者:

    拋棄Windows的默認(rèn)圖標(biāo)吧,讓自己的程序所在的目錄擁有個(gè)性化的Folder Icon!其實(shí)作起來簡單得很,實(shí)際上只需要一個(gè)Desktop.ini文件即可,下面我會(huì)從兩個(gè)方面說明。

  1. 手動(dòng)方式: 

  首先要在需要改變的文件夾中創(chuàng)建一個(gè)Desktop.ini文件,例子如下:

[.ShellClassInfo]
ConfirmFileOp=0
InfoTip=我自己的文件夾
IconIndex=0
IconFile=MyFolder.ico

  解釋:

  參數(shù)ConfirmFileOp設(shè)為0--防止用戶在移動(dòng)或刪除此文件夾時(shí)彈出的“你正在刪除系統(tǒng)目錄”的警告。

  參數(shù)IconFile指定為將要改變的圖標(biāo)文件的位置,可以是Icon、Bmp、exe或者dll文件,上例中的圖標(biāo)文件也放置到同一目錄中。

  參數(shù)IconIndex就可以指定文件的索引,如果此圖標(biāo)文件是Icon文件的話,IconIndex就設(shè)為0。

  參數(shù)InfoTip用來設(shè)定此Folder在Windows中的Tooltip。

  下一步打開CMD(命令提示符),輸入:

attrib +s i:\MyFolder

  i:\MyFolder指的就是我要改圖標(biāo)的目錄的路徑。此項(xiàng)操作是讓你的文件夾成為系統(tǒng)文件夾。

  好了,經(jīng)過手動(dòng)處理后現(xiàn)在的目錄已經(jīng)改變了風(fēng)格。

  2. 編程方式:

  這種方式是用我喜歡的VB來實(shí)現(xiàn)的,實(shí)現(xiàn)起來也同樣Easy。

  只需要兩個(gè)API函數(shù),一個(gè)用來操作Ini文件的建立,另一個(gè)的功能等同于手動(dòng)方式中的attrib +s。

Option Explicit
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function PathMakeSystemFolder Lib "shlwapi.dll" Alias "PathMakeSystemFolderA" (ByVal pszPath As String) As Long

Private Sub Form_Load()
 '以下幾步用于創(chuàng)建Desktop.ini文件
 '不存在ini文件時(shí),會(huì)自己創(chuàng)建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"
 '讓文件夾成為系統(tǒng)文件夾
 PathMakeSystemFolder App.Path
End Sub

  需要進(jìn)一步說明的是:

WritePrivateProfileString ".ShellClassInfo", "IconFile", "MyFolder.ico", App.Path & "\desktop.ini"

  可以改為:

WritePrivateProfileString ".ShellClassInfo", "IconFile", App.EXEName & ".exe", App.Path & "\desktop.ini"

  果你使用的是主窗口的圖標(biāo)的話,VB編譯后的程序的圖標(biāo)的索引也是使用的0。
關(guān)鍵詞:VisualBasic

贊助商鏈接: