я нашел только один способ получить эту информацию - читать реестр ... Есть ключ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity\Identities\
если это офис 2016. Есть подключе как xxxxx_LiveId
где xxxxx
матчи на ProviderId
значение.
Вы можете прочитать значение не менее EmailAddress
из этого подраздела.
Так что я написал некоторые C# код для получения электронной почты зарегистрированного пользователя LiveID:
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;
}
из задних не следует жёстко Version
значение. Вы можете получить и вспомнить офисную версию от Globals.ThisAddIn.Application.Version
в ThisAddIn.cs
файл в ThisAddIn_Startup
метод.