Как извлечь изображение учетной записи текущего пользователя?

Я пытаюсь извлечь изображение учетной записи текущего пользователя в Windows 7, но я не могу понять, где он находится. Я обнаружил, что изображение иногда записывается в папку temp пользователя, но только после выполнения определенных действий. Это не всегда гарантировано. Кому-нибудь удалось извлечь это изображение? Спасибо!

обновление: Я пытаюсь извлечь изображение с помощью C++, но помощь на любом языке будет большим шагом. :)

3 ответов


это описано здесь под плитки профиля пользователя в Windows 7. Это не очень обнадеживает.


всякий раз, когда вызов API требует UserTile, он копируется в %TEMP%\ % USERNAME%.bmp, который обычно C:\Users\username\AppData\Local\Temp\username.bmp.

но если вам нужно извлечь его сразу от Сэм, то вы можете приспособить детали от http://deployment.xtremeconsulting.com/2010/06/23/usertile-automation-part-1/, чтобы сделать программу для чтения HKLM\SAM\SAM\Domains\Account\Users\????????Файл usertile\ (в контексте системы!), пропустите 12 байтов, прочитайте 4 байта в uint и прочитайте это количество байтов в файл.

Edit: я чувствую, что должен добавить, что вызов API, который Explorer в Windows XP использует для получения значка, является неназванным адресом в одной из DLL входа в систему (следовательно, вы не можете назвать его самостоятельно, так как этот адрес должен меняться между версиями), я не могу вспомнить, какая именно DLL на данный момент.


Я не уверен, как вы хотите извлечь изображение. Но если вы просто можете использовать проводник windows, перейдите в C:\Users\(ваше имя пользователя)\AppData\Local\Temp. Файл изображения называется (ваше имя пользователя).bmp

Я получил это от http://www.sevenforums.com/tutorials/5187-user-account-picture-change.html. Я проверил его, и он сработал.