public static VisualStudioUserInfo GetUserInfo() { VisualStudioUserInfo info = null; try { var subKey = "Software\\Microsoft\\VSCommon\\ConnectedUser\\IdeUser\\Cache"; var emailAddressKeyName = "EmailAddress"; var userNameKeyName = "DisplayName"; var profileKeyName = "ProfileUri"; var root = Registry.CurrentUser; var sk = root.OpenSubKey(subKey); if (sk != null) { var email = sk.GetValue(emailAddressKeyName) as string; var user = sk.GetValue(userNameKeyName) as string; var profile = sk.GetValue(profileKeyName) as string; info = new VisualStudioUserInfo { Email = email, Name = user, Url = profile }; } } catch (System.Exception) { } return(info); }
public TelemetryWrapper(string visualStudioVersion, string vsxVersion) { UserInfo = RegistryKeyReader.GetUserInfo(); VisualStudioVersion = visualStudioVersion; VsxVersion = vsxVersion; var config = TelemetryConfiguration.CreateDefault(); config.InstrumentationKey = "bb1f7c2e-10ad-42ff-8bbf-e9d02846cb5f"; config.DisableTelemetry = Debugger.IsAttached; Instance = new TelemetryClient(config); }
private static Dictionary <string, string> Metrics(VisualStudioUserInfo info) { var metrics = new Dictionary <string, string>(); metrics.Add("Username", Environment.UserName); metrics.Add("Domain Name", Environment.UserDomainName); metrics.Add("Machine Name", Environment.MachineName); metrics.Add("OS", Environment.OSVersion.ToString()); metrics.Add("Version", Environment.Version.ToString()); metrics.Add("x64", Environment.Is64BitProcess.ToString()); if (info != null) { metrics.Add("VS User", info.Name); metrics.Add("VS User Email", info.Email); metrics.Add("VS Profile Link", info.Url); } return(metrics); }