Я хочу получить путь к файлу профиля пользователя в Windows, используя Python.
Я нашел следующий подход в VB6 :
Option Explicit
'KERNEL32
Private Declare Function GetVersion Lib "KERNEL32" () As Long
'SHELL32
Private Declare Function SHGetUserPicturePath Lib "SHELL32" Alias "#261" (ByVal pUserOrPicName As Long, ByVal sguppFlags As Long, ByVal pwszPicPath As Long, ByVal picPathLen As Long) As Long
Private Declare Function xp_SHGetUserPicturePath Lib "SHELL32" Alias "#233" (ByVal pUserOrPicName As Long, ByVal sguppFlags As Long, ByVal pwszPicPath As Long) As Long
Private Const SGUPP_CREATEPICTURESDIR = &H80000000
Public Function LoadUserTile() As IPictureDisp
Dim sPath As String
sPath = String$(256, vbNullChar)
Select Case (GetVersion() And &HFF)
Case 5
Call xp_SHGetUserPicturePath(0, SGUPP_CREATEPICTURESDIR, StrPtr(sPath))
Case 6
Call SHGetUserPicturePath(0, SGUPP_CREATEPICTURESDIR, StrPtr(sPath), 256)
End Select
sPath = Left$(sPath, InStr(1, sPath, vbNullChar) - 1)
Set LoadUserTile = LoadPicture(sPath)
End Function
Но я не знаю, как перевести его на Python, используя ctypes, так как используемые функции не задокументированы MSDN. Я нашел этот альтернативный ресурс , однако.
Я также пытался получить доступ к этой папке :
%ProgramData%\Microsoft\User Account Pictures\Guest.bmp
%ProgramData%\Microsoft\User Account Pictures\User.bmp
Но есть сохраненные изображения профиля по умолчанию, а не текущие.