是否可以在c#中获取Visual Studio帐户信息?

时间:2017-11-23 12:02:38

标签: c# .net visual-studio

我想在调试模式下获取当前登录到Visual Studio的用户的电子邮件地址。就像使用Environment.UserName获取Windows帐户名一样。

可能吗?

1 个答案:

答案 0 :(得分:0)

我永远不会将VisualStudio用户名用于许可系统。 VS用户的名称存储在一个简单的注册表项中,可以轻松操作。

您可以使用以下代码检索最多14个Visual Studio版本(Visual Studio 2015)的用户名/帐户信息。 Visual Studio 2017具有不同的注册表路径。阅读更多相关信息here

const byte minVSVersion=11; // Visual Studio 2012
const byte maxVSVersion=14; // Visual Studio 2015

static List<string> getVSUsers()
{
    var vsUsrs=new List<string>();
    for(byte version=minVSVersion; version<=maxVSVersion; version++)
        vsUsrs.Add((string)Registry.GetValue(
            @"HKEY_USERS\.DEFAULT\Software\Microsoft\VisualStudio\"+version+@".0_Config\Registration",
            "UserName", null));

    return vsUsrs.Where(usr => usr!=null).ToList();
}

不幸的是,无法准确确定用户用于编译程序的VisualStudio版本。