1

我们如何获取他们在 WINdows 7 和 Windows 8 中使用的用户头像?(我主要想要这个用于 Windows 8)。到目前为止,我只看到一堆论坛帖子说它无法完成,但我看到左右和中心的应用程序可以做到这一点。

4

1 回答 1

1

根据Serge - appTranslator

这篇文展示了如何设置用户磁贴(图片)。在接近尾声的评论中(Michael Anthony,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 版本的兼容性。

归功于 Joco和Michael Anthony

于 2013-06-03T20:00:51.800 回答