個性化Folder Icon(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中除錯通過
相關文章
- Folder Icons for Mac資料夾個性化圖示修改工具)Mac
- Mac資料夾圖示美化製作工具——Folder Icon MakerMac
- Delphi Format 格式化數字ORM
- delphi 常用控制元件屬性設定說明控制元件
- 為你生成了 1000 + 個 ICON For SVGSVG
- git log 個性化Git
- 從Delphi到Lazarus——Delphi轉換器
- delphi opencvOpenCV
- ITSM的個性化需求
- 11.4 個性化學習
- (35)uniGUI for Delphi UniDBGrid的一些功能優化GUI優化
- [!] Attempt to read non existent folder `***********`
- daterangepicker的個性化使用技巧
- HHDESK個性化指令碼功能指令碼
- SmarterHQ:隱私與個性化
- CentOS 7 個性化配置指南CentOS
- Spring Security OAuth 個性化tokenSpringOAuth
- Delphi 論文閱讀 Delphi: A Cryptographic Inference Service for Neural Networks
- 假日營銷要素:敏捷性、創造性和個性化敏捷
- SuperObject Delphi 的 JSON 屬性亂序 – 操作類改造 – 關於屬性順序的問題ObjectJSON
- Adobe:2020年個性化報告
- vim安裝及個性化配置
- Delphi TDictionary字典類
- win10個性化設定方法_怎麼使用win10的個性化設定Win10
- Muse-UI IconUI
- 基礎元件:ICON元件
- git 入門教程之個性化 gitGit
- Flutter 實戰系列:個性化 ListView physicsFlutterView
- 個性化資料夾圖示(VB)
- 埃森哲:支付變得個性化
- A Million Ads報告:個性化的力量
- Jenkins restriction as of credentials and user group --- Folder solutionJenkinsREST
- jpeg,png,bmp轉換成icon,windows本地匯出icon檔案Windows
- Delphi TMSMQTT使用筆記MQQT筆記
- IDocList/IDocDict JSON for Delphi and FPCJSON
- delphi記憶體表記憶體
- delphi 裡的 列舉
- Vue引入icon圖示Vue