HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Alapértelmezett levelezési beállításokat lekérdező komponens


Példaprogram letöltése

4439 bájt

Olyan alkalmazásokban, melyek valamilyen formában elektronikus leveleket küldenek a felhasználó nevében, praktikus megoldás lehet, ha az alkalmazás ismeri a felhasználó alapértelmezett levelezési beállításait, megkímélve annak begépelésétől a program használóját. Cikkünkben elkészítünk egy komponenst, mely lekérdezi ezeket a levelezési beállításokat.

A mellékelt példaprogram megnyitása előtt a SMTPInfo.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component – Install Component menüpontot.
A felhasználó által létrehozott elektronikus postafiókok adatai, beállításaiknak információi a Rendszerleíró adatbázis egy meghatározott kulcsában tárolódnak, így más alkalmazások által is hozzáférhetők. A cikkben elkészített komponens is innen olvassa ki őket.
Az információk két részletben tárolódnak. Mivel a rendszer több fiókinformációt tartalmazhat, első lépésben meg kell határoznunk, hogy ezek közül melyik az alapértelmezett. Ezt a Registry következő kulcsa alatt találjuk meg, a „Default Mail Account” bejegyzésben:
HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager
Ennek értékét kiolvasva egy újabb kulcsnevet kapunk, melynek adatai már a fiókinformációkat tartalmazzák.
A kulcs a
Registry HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts
kulcsa alatt található, ahonnan már csak ki kell olvasnunk a szükséges bejegyzéseket.
A komponens GetSmtpInfo metódusa szolgál arra, hogy ezeket az adatokat egy TStringList típusban visszaadja.
function GetSmtpInfo : TStringList;
A metódusban első lépésben kiolvassuk az alapértelmezett fiók kulcsát:
list := TStringList.Create;
Registry := TRegistry.Create;
try
  Registry.RootKey := hkey_CURRENT_USER;
  if Registry.OpenKey('software\microsoft\internet account manager', False) then begin
    AccountStr := Registry.ReadString('default mail account');
    Registry.CloseKey;
    ...
Ezt követően sorban kigyűjtjük a bejegyzések értékeit:
    if (AccountStr <> '') then begin
      if Registry.OpenKey('software\microsoft\internet account manager\accounts\' + AccountStr, False) then begin
      begin
        list.Add('Bejegyzés neve: ' + Registry.ReadString('Account Name'));
        ...
  result := list;
Az alkalmazásban már csak meg kell hívnunk a komponens metódusát:
list := TStringList.Create;
...
list :=  smtpInfo1.GetSmtpInfo;
És kiolvasni a TStringList adatait.
for i:=0 to list.Count-1 do
  begin
    listBox1.Items.Add(list.Strings[i]);
  end;

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 686. 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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |