C # - Как получить текущее изображение пользователя - PullRequest
1 голос
/ 06 апреля 2011

как я могу получить изображение авторизованного пользователя в c #? Спасибо

Ответы [ 5 ]

4 голосов
/ 06 апреля 2011

Это невозможно в каждой ОС; но на OS, где это возможно:

Для Windows Vista или более поздней версии:

Это изображение находится в C: \ Users \ имя_пользователя \ AppData \ Local \ Temp \ UserName.bmp

если пользователь является пользователем домена, это будет "DOMAIN+UserName.bmp" (Да, «+» является частью имени файла)

1 голос
/ 02 ноября 2017

Попробуйте это для Windows 10

Изображение пользователя находится в C: / users / username / appdata / romaing / microsoft / windows / account pictures /

1 голос
/ 14 июня 2015

Попробуйте 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;
        }
    }
0 голосов
/ 06 июля 2019

Для текущего пользователя и ЛЮБОГО пользователя в экземпляре Microsoft Windows для этого есть пакет NuGet (и здесь идет бесстыдный плагин):

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

Для тех, кто заинтересованв исходном коде и задействованной магии voodoo.

Для тех, кто заинтересован в том, чтобы просто заставить его работать, используйте пакет 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));

Решение, содержащееся в библиотеке, основано на недокументированных Shell32.dll вызовах, присутствующих в Windows Vistaи более новые и недокументированные ключи реестра, присутствующие в Windows 8 и более поздних версиях.

Как получить фотографию профиля пользователя, вошедшего в учетную запись Microsoft, - мое собственное открытие, я нигде не нашел решения, вероятно, это мило Microsoftсекрет.

Что важно, решение, которое можно найти, во многих отношениях является неполным:

  • без Win32 API: изображение профиля пользователя может отсутствовать во временном каталоге, может быть удалено, недоступно для чтения обычным пользователем.
  • без использования недокументированного ключа реестра и недокументированных функций API Win32, которые могут получить изображение профиля для MicrosoftУчетная запись пользователя невозможна.

Если вы обнаружите какие-либо ошибки или несовместимость в этом решении, откройте проблему на GitHub.

Протестировано с несколькими версиями Windows 10 (стабильная версия и разработчики).строить).Я протестировал его с локальными и учетными записями Microsoft.

Кстати: если имя пользователя не существует, метод возвращает путь к изображению профиля «по умолчанию».

ПРИМЕЧАНИЕ. Пакет зависит от.NET Framework и несовместим с .NET Core и .NET Standard из-за сильной зависимости от Win32 API (и, следовательно, не кросс-платформенной).Существуют и другие библиотеки Woof, совместимые с .NET Standard.Они кажутся недокументированными, однако содержат документацию XML, доступную для Visual Studio, а исходный код на GitHub позволяет выяснить, как они работают.Библиотеки Woof находятся в постоянной активной разработке, поэтому это безопасный выбор.

0 голосов
/ 06 апреля 2011

Похоже, Joco и этот парень копался в некоторых инструментах и ​​аспектах AD установки "usertile"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...