在Windows Vista上获取默认用户帐户个人资料图片> 8

时间:2013-06-03 19:21:26

标签: c# .net windows winforms

我们如何获取用户在WIndows 7和Windows 8中使用的个人资料图片? (我主要想在Windows 8上使用它)。到目前为止,我只看到一些论坛帖子说它无法完成,但我看到应用程序左右中心可以做到。

1 个答案:

答案 0 :(得分:1)

根据Serge - appTranslator

blog post显示如何设置用户磁贴(图片)。在评论结束时(迈克尔安东尼,4月10日,22:45),评论者描述了如何获得图片。我已将信息收集到C#片段中。请记住,这是基于未记录的Windows Shell函数。

    using System;
    using System.Text;
    using System.Drawing;

    [DllImport("shell32.dll", EntryPoint = "#261", 
               CharSet = CharSet.Unicode, PreserveSig = false)]
    public static extern void GetUserTilePath(
      string username, 
      UInt32 whatever, // 0x80000000
      StringBuilder picpath, int maxLength);

    public static string GetUserTilePath(string username)
    {   // username: use null for current user
        var sb = new StringBuilder(1000);
        GetUserTilePath(username, 0x80000000, sb, sb.Capacity);
        return sb.ToString();
    }

    public static Image GetUserTile(string username)
    {
        return Image.FromFile(GetUserTilePath(username));
    }

请注意,此Shell函数会创建文件\ Users \< USER> \ AppData ... \< USER> .bmp并返回其文件名。

另外,我在Win7上测试过它。我不知道它与以前的Windows版本的兼容性。

JocoMichael Anthony