程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用VisualBasic設計個性化文件夾圖標

用VisualBasic設計個性化文件夾圖標

編輯:VB綜合教程
拋棄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。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved