|
|
Program mappa és ikon létrehozása a Start menübe
|
|
Példaprogram letöltése
14859 bájt
|
Telepítő szoftverek egyik funkciójának nézünk utána ebben a cikkben: megvizsgáljuk, hogy miként hozhatunk létre programból új menüpontot a Start menübe és hogy ehhez miként rendelhetünk hozzá tetszőleges alkalmazást. Mindehhez készítünk egy TCreateFolder és egy TCreateIcon névre keresztelt komponenst, hogy megkönnyítsük a munkánkat.
A mellékelt példaprogram megnyitása előtt a CreateIcon.pas-ban és a CreateFolder.pas-ban lévő komponenseket telepítenie kell a Delphi alá.
A TCreateFolder komponens hozza létre azt az új mappát a Start menü-be, amelybe majdan az egyes alkalmazásaink ikonjait helyezhetjük el. A TCreateIcon pedig ezeknek a programoknak az ikonjait helyezi el a létrehozott mappába.
Nézzük először a TCreateFolder-t.
Itt a FolderName property-be kell megadnunk annak a programcsoportnak a nevét, melyet a Start menü Programok menüjében szeretnénk viszontlátni. Ha ezt megtettük, akkor már csak az Execute eljárás hívása van vissza. Ezt akár megtehetjük szerkesztési időben is a komponensen való jobb gombbal történő kattintás után megjelenő menürendszerben látható Execute menüpont kiválasztásával. Ekkor máris létrejön az új menüpont a Start menü Programok menüjében.
Ennek megvalósítása egyszerű: tudnunk kell a Start menü menüpontjairól, hogy azok nem mások mint a C:\WINDOWS\Start Menu könyvtárban lévő újabb könyvtárak nevei. Így, ha új menüpontot akarunk létrehozni, akkor elegendő egy új alkönyvtárat létrehozni a C:\WINDOWS\Start Menu\Programs könyvtárban. Ennek az elérési útvonala azonban más és más lehet gépenként, így célszerű ennek a pontos helyét a Windows regisztrációs adatbázisától megkérdezni.
constructor TCreateFolder.Create(AOwner: TComponent);
var
reg: TRegistry;
begin
inherited;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\
CurrentVersion\Explorer\Shell Folders', false);
FProgramPath:=FormatPath(reg.ReadString('Programs'));
reg.CloseKey;
reg.Free;
end;
Ha ez megvan, akkor már csak annyi a dolgunk, hogy ezen a könyvtáron belül létrehozzunk egy újat, amelyre a ForceDirectories függvény kiválóan megfelel.
procedure TCreateFolder.Execute;
begin
ForceDirectories(FProgramPath+FFolderName);
end;
Nézzük most a TCreateIcon komponenst. Ennek a feladata, hogy az imént létrehozott könyvtárba egy-egy LNK kiterjesztésű állományt hozzon létre, mely az általunk megadott programra hivatkozik. Így ha a felhasználó erre kattint, akkor elindul az adott program.
A komponens használata a következő:
A Folder property-ben meg kell adnunk azt a TCreateFolder komponenst, amellyel létrehoztuk az új alkönyvtárát. Ha egy már meglévőt szeretnénk használni, akkor is szükség lesz a TCreateFolder komponensre és ennek FolderName property-ére, csak ekkor nem kell meghívni nyilván az Execute eljárását.
A FileName property-ben adjuk meg, hogy melyik az az alkalmazás, melyhez ikont szeretnénk készíteni a Start menübe.
A LinkFileName property-be adjunk meg egy állomány nevet. Ez lesz a létrehozandó LNK állomány neve, valamint ez a név jelenik meg a Start menüben is az adott programnál.
Az IconFileName property-ben megadhatunk egy ikont (ICO, DLL). Ez lesz az az állomány, ahonnan a menüpont előtt megjelenő ikon képe kerül ki. Használata nem kötelező.
A ShowMode property-ben szabályozhatjuk, hogy az új menüpont által elindított alkalmazás normál, teljes képernyős, vagy minimalizált módban induljon el.
Az ikon létrehozásához az Execute függvény hívható, vagy szerkesztési időben itt is rendelkezésünkre áll az Execute nevű menüpont.
A komponens működéséhez szükséges az IShellLink, illetve az IPersistFile interfész használata. Ezekről részletes cikk jelent már meg újságunk 2. évfolyamának 29. számában, "Parancsikon létrehozása programból" címmel, így az ottaniakat nem ismételnénk meg itt még egyszer.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 44. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|