程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 個性化FolderIcon(Delphi)

個性化FolderIcon(Delphi)

編輯:Delphi


拋棄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中調試通過

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