Mindehhez a Windows Registry-jét hívjuk segítségül. Amikor felinstallálunk egy programot a gépünkre, az beregisztrálja magát a Registry-be, és egy úgynevezett Registry Key (kulcs) jön létre, mely a telepített programra utal. Példánkban ezt a Key-t fogjuk megvizsgálni.
Lássuk, hogyan valósul ez meg a példaprogramban.
Első lépésként egy tömbben eltároljuk az Office-ban található alkalmazások neveit.
Appl: array[0..5] of String = ('Word', 'Excel', 'Access', 'PowerPoint', 'FrontPage', 'Outlook');
Ezután létrehozunk egy olyan függvényt, mely megvizsgálja, hogy az OfficeAppl String típusú paraméterben kapott alkalmazásnévhez létezik-e a Registry-ben kulcsinformáció.
function IsOfficeApplInstalled(OfficeAppl:string): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Megnyitjuk a Registry-t, majd beállítjuk azt a munkakönyvtárat, amelyikben az adatokat el szeretnénk érni. Esetünkben ez a HKEY_CLASSES_ROOT lesz.
Result := Reg.KeyExists(OfficeAppl+'.Application');
Minden alkalmazás, mely installálásra kerül a rendszerben, egy *.Application bejegyzést kap ebben a könyvtárban, ahol a * helyén a beregisztrált alkalmazás neve található. Esetünkben ez például a Word.Application lesz.
A munka végeztével felszabadítjuk a Registry-t.
Ezután meghívjuk a fenti függvényt, melynek értékként a tömbben eltárolt alkalmazások neveit adjuk át sorban, és attól függően, hogy létezik-e bejegyzés a megadott programhoz vagy sem, a megfelelő üzenetet adjuk a Memo-hoz.
Példánkban ez a következőképpen néz ki:
Memo1.Clear;
for i:=0 to 5 do
begin
if IsOfficeApplInstalled(Appl[i]) then
Memo1.Lines.Add('A MS '+Appl[i]+' telepítve van a gépre.')
else
Memo1.Lines.Add('A MS '+Appl[i]+' nincs telepítve a gépre.')
end;
Először töröljük a Memo1 tartalmát, majd az IsOfficeApplInstalled függvény visszatérési értékétől függően kiíratjuk a megfelelő üzenetet.
A fent ismertetett módszer segítségével nem csak az Office komponensei, hanem bármely más program is megvizsgálható, melynek létezik a Registry megfelelő könyvtárában ’.Application’ végű bejegyzése.