C# - 如何获取当前用户图片

时间:2011-04-06 16:55:30

标签: c# connect image

如何在c#中获取登录用户的图像?感谢

5 个答案:

答案 0 :(得分:4)

每个操作系统都无法做到这一点;但是在有可能的OS上:

对于Windows Vista或更高版本:

  

该图片位于   C:\ Users \用户名\应用程序数据\本地\ TEMP \ UserName.bmp

如果用户是域用户,则为"DOMAIN+UserName.bmp"(是的,'+'是文件名的一部分)

答案 1 :(得分:1)

尝试Ths ::

    public static Image GetUserimage()
    {  

        if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+@"\Temp\"+Environment.UserName+".bmp"))
        {
            return Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Temp\" + Environment.UserName + ".bmp");
        }
        else
        {
            return null;
        }
    }

答案 2 :(得分:1)

尝试使用Windows 10

用户图片位于 C:/ users / username / appdata / romaing / microsoft / windows / account pictures /

答案 3 :(得分:0)

看起来Jocothis guy已经挖掘了一些设置“usertile”的工具和AD方面

答案 4 :(得分:0)

对于当前用户以及Microsoft Windows实例上的任何用户,都有一个NuGet程序包(这里是无耻的插件):

https://github.com/HTD/Woof.System

对于那些对源代码和伏都教魔术感兴趣的人。

对于那些只想使其工作感兴趣的人,请使用NuGet包Woof.System,然后使用以下功能:

获取WPF的当前小用户位图:
var userBitmapSmall = new BitmapImage(new Uri(SysInfo.GetUserPicturePath()));
获取WPF的其他小用户位图:
var userBitmapSmall = new BitmapImage(new Uri(SysInfo.GetUserPicturePath("John")));
获取WPF的小而大的任何用户位图:
var smallBitmapPath = SysInfo.GetUserPicturePath("John", out var largeBitmapPath);
var smallBitmap = new BitmapImage(new Uri(smallBitmapPath));
var largeBitmap = new BitmapImage(new Uri(largeBitmapPath));

该库中包含的解决方案基于Windows Vista中存在的未记录的Shell32.dll调用以及Windows 8及更高版本中存在的更新和未记录的注册表项。

如何获取使用Microsoft帐户登录的用户的个人资料图片是我自己的发现,我在任何地方都找不到解决方案,这可能是Microsoft的甜蜜秘密。

重要的是,可以用Google搜索的解决方案在许多方面都不完整:

  • 如果没有Win32 API,则用户个人资料图片可能不在临时目录中,可以被删除,对于常规用户而言无法访问。
  • 不使用未公开的注册表项和未公开的Win32 API功能来检索Microsoft帐户用户的个人资料图片是不可能的。

如果在此解决方案中发现任何错误或不兼容,请在GitHub上打开一个问题。

经过Windows 10几个版本(稳定和开发人员构建)的测试。 我用本地帐户和Microsoft帐户进行了测试。

顺便说一句:如果用户名不存在,该方法将返回“默认”个人资料图片的路径。

注意:该软件包依赖于.NET Framework,并且由于对Win32 API的高度依赖(因此不能跨平台)而与.NET Core和.NET Standard不兼容。还有其他与.NET Standard兼容的Woof库。它们似乎没有文档记录,但是它们包含可用于Visual Studio的XML文档,并且GitHub上的源代码允许弄清楚它们的工作方式。 Woof库正在不断地积极开发中,因此这是一个安全的选择。