Ich fand nur einen Weg, diese Informationen abzurufen - die Registry lesen ... Es gibt Schlüssel HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity\Identities\
wenn es Office 2016. Es gibt Unterschlüssel wie xxxxx_LiveId
wo xxxxx
Spiele zu ProviderId
Wert.
Sie können mindestens EmailAddress
Wert von diesem Unterschlüssel lesen.
Also schrieb ich einige C# -Code für eine E-Mail in LiveID Benutzer angemeldet Adresse abrufen:
string GetUserEmailFromOffice365()
{
string Version = "16.0"; //TODO get from AddIn
string identitySubKey = [email protected]"Software\Microsoft\Office\{Version}\Common\Identity\Identities";
using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(identitySubKey))
{
if (key != null && key.SubKeyCount > 0)
{
foreach (var subkeyName in key.GetSubKeyNames())
{
using (var subkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey([email protected]"{identitySubKey}\{subkeyName}"))
{
object value = null;
try
{
value = subkey.GetValue("EmailAddress");
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
if (value != null && value is string)
{
return value as string;
}
}
}
}
}
return null;
}
Von cource
sollten Sie
Version
Wert nicht hart codieren. Sie erhalten und erinnern Büroversion von
Globals.ThisAddIn.Application.Version
in
ThisAddIn.cs
Datei in
ThisAddIn_Startup
Methode.