拋棄Windows的默認圖標吧,讓自己的程序所在的目錄擁有個性化的Folder Icon!
其實作起來簡單得很,實際上只需要一個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 +s i:MyFolder
i:MyFolder指的就是我要改圖標的目錄的路徑。此項操作是讓你的文件夾成為系統文件夾。
好了,經過手動處理後現在的目錄已經改變了風格。
2. 編程方式:
這種方式是用我喜歡的Delphi來實現的,實現起來也同樣Easy。
一個用來操作Ini文件的建立,另一個的功能等同於手動方式中的attrib +s。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IniFiles, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MyIniFile: TIniFile;
begin
//以下幾步用於創建Desktop.ini文件
//不存在ini文件時,會自己創建ini
MyIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName )+Desktop.ini);
MyIniFile.WriteString(.ShellClassInfo, ConfirmFileOp, 0);
MyIniFile.WriteString(.ShellClassInfo, InfoTip, 我的文件夾因此而改變);
MyIniFile.WriteString(.ShellClassInfo, IconIndex, 0);
MyIniFile.WriteString(.ShellClassInfo, IconFile, ExtractFileName(Application.ExeName));
MyIniFile.Free;
//讓文件夾成為系統文件夾
SetFileAttributes(PChar(ExtractFilePath(Application.ExeName)), GetFileAttributes(PChar(ExtractFilePath(Application.ExeName))) OR FILE_ATTRIBUTE_SYSTEM);
end;
end.
如果你使用的是主窗口的圖標的話,Delphi編譯後的程序的圖標的索引是0。
本示例在Win2000和Delphi6中調試通過