Существует недокументированная функция в shell32.dll. В Windows XP его порядковый номер составляет 233, в Windows Vista и 7 - 261.
Прототип его функции ( от Airesoft ):
HRESULT WINAPI SHGetUserPicturePath (
LPCWSTR pwszPicOrUserName,
DWORD sguppFlags,
LPWSTR pwszPicPath,
UINT picPathLen
)
Вы можете использовать эту функцию для поиска пути, где хранится изображение пользователя. Просто передайте имя пользователя как pwszPicOrUserName, буфер, в котором вы хотите сохранить путь к изображению как pwszPicPath, а размер буфера в символах как picPathLen. Вы можете установить sguppFlags на 0 или на любой из других флагов возможных.
Существует также недокументированная функция, которую вы можете использовать для установки пользовательского изображения пользователя. Его порядковый номер 234 в Windows XP, 262 в Windows Vista и Windows 7.
Прототип его функции ( от Airesoft ):
HRESULT WINAPI SHSetUserPicturePath (
LPWSTR pwszAcctName,
DWORD reserved,
LPCWSTR pwszPictureFile
)
Передайте имя пользователя, чье изображение должно быть изменено как pwszAcctName, и путь к изображению, которое вы хотите установить как pwszPictureFile. Установите зарезервированное значение 0. Вы должны инициализировать COM до вызова этой функции.
Согласно Microsoft, вам не следует полагаться на недокументированные функции, поскольку они могут быть удалены или изменены любым исправлением, установленным в Windows.