2016-12-02 89 views

回答

0

我只找到一個方法來檢索該信息 - 讀取註冊表...... 有關鍵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值。你可以在ThisAddIn_Startup方法ThisAddIn.cs文件還記得Globals.ThisAddIn.Application.Version Office版本。

相關問題