
A mellékelt példaprogram megnyitása előtt a DesktopIni.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens használatához a Folder nevű property-ben kell megadni a kezelendő mappát, majd az IconFile property-ben egy ikont tartalmazó állományt, mely lehet egy ICO állományt, de akár egy DLL, EXE is, melyben ikonok vannak. Ez utóbbi esetben az IconIndex property-t használva, megadhatjuk annak az ikonnak a sorszámát, melyet az adott állományból szeretnénk a mappához rendelni.
Az InfoTip property-ben megadott sztringgel tetszőleges súgó szöveget adhatunk meg az adott mappához.
A property beállítása után meghívjuk az Execute eljárást, mely elvégzi a Desktop.ini létrehozását a Folder-ben megadott mappába. A Desktop.ini nem más, mint egy INI állomány, így kezelésére egy TIniFile osztályt használunk fel.
procedure TDesktopIni.Execute;
begin
ini:=TIniFile.Create(FFolder+'Desktop.ini');
ini.WriteString('ExtShellFolderViews', 'Default', '{5984FFE0-28D4-11CF-AE66-08002B2E1262}' );
ini.WriteString('ExtShellFolderViews', '{5984FFE0-28D4-11CF-AE66-08002B2E1262}', '{5984FFE0-28D4-11CF-AE66-08002B2E1262}' );
ini.WriteString('{5984FFE0-28D4-11CF-AE66-08002B2E1262}','PersistMoniker','file://Folder.htt');
A létrehozás és a néhány alapérték beírása után következhet a property-kben megadott értékek beírása.
ini.WriteString('.ShellClassInfo', 'IconFile', FIconFile);
ini.WriteInteger('.ShellClassInfo', 'IconIndex', FIconIndex);
ini.WriteString('.ShellClassInfo', 'InfoTip', FInfoTip);
ini.Free;
Végül a Desktop.ini állomány attribútumát beállítjuk rendszer és rejtett attribútumúra.
SetFileAttributes(PChar(FFolder+'Desktop.ini'), FILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_HIDDEN);
end;
A komponens felhasználása ezek után már egyszerű: csak be kell állítanunk a szükséges property-ket az Execute hívása előtt.
procedure TForm1.Button1Click(Sender: TObject);
begin
with DesktopIni1 do begin
Folder:='c:\program files';
IconFile:=ExtractFilePath(Application.ExeName)+'animare.ico';
InfoTip:='http://www.SoftwareOnline.hu';
Execute;
end;
end;