2016-12-02 8 views
0

Ich entwickle VSTO-Add-in für Word, Excel usw. Und ich brauche Informationen über Benutzer derzeit in Office-Anwendung eingeloggt. Ich brauche mindestens eine E-Mail-Adresse.Informationen über LiveId (Office 365) Konto in Office-Anwendung in VSTO AddIn

enter image description here

Ich fand diese Eigenschaften Globals.ThisAddIn.Application.UserName, .UserInitials und .UserAddress. Aber es geht nicht um LiveID Konto. Es handelt sich um Office-Benutzereinstellungen.

Wie kann ich benötigte Informationen erhalten?

Antwort

0

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.

Verwandte Themen