
A mellékelt példaprogram megnyitása előtt, a files.ini állományban állítsa be a megnyitandó állományok neveit és elérési útjait. A program csak olyan állományokat képes megnyitni, amelyet a Windows ismer.
A uses listában fel kell sorolnunk a ShellAPI, IniFiles unitok neveit. Ezekre a későbbiekben szükségünk lesz.
Ahhoz, hogy a CTRL+SHIFT+F1-F11 billentyűkombinációkat ismerje a Windows, a Form OnCreate eseményében regisztrálnunk kell ezeket a kombinációkat.
for i:=112 to 123 do
RegisterHotKey(Handle,i,MOD_CONTROL+MOD_SHIFT,i);
Az egyes kombinációkat megadhatjuk egyesével is, de mivel az F1-F12 gombok kódjai egymás után helyezkednek el, és az F1 kódja 112, egy for ciklus segítségével regisztrálhatjuk a rendszerben a billentyűkombinációkat.
A RegisterHotKey első paramétere a Form azonosítója. A második paraméterben egy számot kell megadnunk, amely a továbbiakban a billentyűkombinációt azonosítani fogja. A harmadik paraméterben kell megadnunk a használandó módosító billentyűket (CTRL és SHIFT). Végül a negyedik paraméterbe kerül a billentyű kódja.
Az F1-F11 billentyűkhöz állományokat rendelünk, az F12 billentyű lenyomásakor kilépünk a programból.
A regisztrált billentyűkombinációkat a Form OnDestroy metódusában szüntetjük meg, az UnRegisterHotKey, API függvénnyel.
for i:=112 to 123 do
UnRegisterHotKey(Form1.Handle,i);
A Form OnCreate eseményében kell gondoskodnunk arról, hogy alkalmazásuk ne a tálcán jelenjen meg, hanem csak egy jelzőikonja legyen az óra mellett.
Az óra mellé a Shell_NotifyIcon függvény segítségével helyezhetünk el és törölhetünk egy saját ikont.
Shell_NotifyIcon(NIM_ADD,@FIconData);
A fenti függvényhívás egy ikon létrehozására szolgál. Ha az első paraméterben NIM_DELETE-et adunk meg, akkor a függvény törli az ikont.
Azt hogy az ikon ilyen képpel és tulajdonságokkal jelenjen meg, a második paraméterben adhatjuk meg, egy TNotifyIconData típusú változó segítségével.
Gondoskodnunk kell arról is, hogy alkalmazásunk ikonja ne jelenjen meg a tálcán, ezt az alábbi függvényhívás segítségével érhetjük el.
SetWindowLong(Application.Handle, GWL_EXSTYLE,GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
Azt, hogy melyik billentyűhöz milyen állomány tartozzon, a files.ini fájlban állíthatjuk be, a fájlban szereplő kulcsok segítségével.
Az ini állomány tartalmát a Form OnCreate eseményében olvassuk be, az FFiles tömbbe. A tömb 11 sztring elemet tárol, a 11 gombnak megfelelően.
Hogy alkalmazásunk megkapja a HotKey lenyomásakor keletkező üzenetet az operációs rendszertől, létre kell hoznunk a következő függvényt.
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
A függvény belsejében kell megírnunk azokat az eseményeket, amelyeknek forróbillentyűink lenyomásakor kell futni.
A függvény akkor kerül meghívásra, amikor egy regisztrált HotKey lenyomásra kerül. A lenyomott kombináció értékét az alábbi módon kérdezhetjük le.
if Msg.HotKey in [112..122] then begin
A fenti vizsgálatnál azokat a kódokat kérdezzük le, amelyeket mi rendeltünk hozzá az egyes kombinációkhoz.
Az adott állomány megnyitásához a ShellExecute függvényt használjuk.
if Msg.HotKey in [112..122] then
ShellExecute(0,'open',PChar('"'+FFiles[Msg.Hotkey-111]+'"'),'','',SW_SHOW);