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 DefaultSMTPInfos property-je szolgál arra, hogy ezeket az adatokat egy ArrayList típusban visszaadja.
[Browsable(false)]
public ArrayList DefaultSMTPInfos
{
get
{
return GetSmtpInfos();
}
}
A property-ben meghívjuk a GetSmtpInfos metódust, mely prezentálja az adatokat.
Elsőként létrehozunk egy objektumot a főkulcs olvasásához.
RegistryKey mainkey = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser,"");
Megnyitjuk az Internet Account Manager nevű kulcsot, hogy az alapértelmezett bejegyzéseket tartalmazó kulcs nevét kiolvassuk.
RegistryKey defaultkey = mainkey.OpenSubKey("Software\\Microsoft\\Internet Account Manager");
string defname = defaultkey.GetValue("Default Mail Account").ToString();
Létrehozunk egy újabb objektumot, mely már a kért bejegyzéseket olvassa sorban, és elhelyezi azokat az ArrayList objektumban.
RegistryKey smtpkey = mainkey.OpenSubKey("Software\\Microsoft\\Internet Account Manager\\Accounts\\" + defname);
info.Add("Bejegyzés neve: " + smtpkey.GetValue("Account Name"));
...
Az alkalmazás indulásakor egy ListView kontrolban megjelenítjük az adatokat.