获取用户图片

Gu.*_*u. 5 delphi winapi

操作系统:Win7x64(2008,2008r2).郎:Delphi Xe2.

在此输入图像描述 在此输入图像描述

  1. 如何接收图像"用户帐户图片"的完整路径(和文件名)?
  2. 如何设置新图片?

关于delphi plz的例子.

需要:...函数GetCurrentUserPicture:string;

... function GetUserPicture(UserName:String):string;

... function SetUserNewPicture(UserName,ImageFileName:String):bool;

Nor*_*elm 11

shell32.dll中有一个未记录的函数.在Windows XP上,其顺序为233,在Windows Vista上为7,其序数为261.

它的功能原型(来自Airesoft)是:

HRESULT WINAPI SHGetUserPicturePath (
    LPCWSTR pwszPicOrUserName, 
    DWORD sguppFlags, 
    LPWSTR pwszPicPath, 
    UINT picPathLen 
)
Run Code Online (Sandbox Code Playgroud)

您可以使用此功能检索存储用户图片的路径.只需将用户名传递为pwszPicOrUserName,将要存储图片路径的缓冲区作为pwszPicPath,将缓冲区的大小存储为picPathLen.您可以将sguppFlags设置为0或任何其他标志 posssible.

还有一个未记录的功能,您可以使用它来设置用户的用户图片.其序号在Windows XP上为234,在Windows Vista和Windows 7上为262.

它的功能原型(来自Airesoft)是:

HRESULT WINAPI SHSetUserPicturePath ( 
    LPWSTR pwszAcctName, 
    DWORD reserved, 
    LPCWSTR pwszPictureFile 
)
Run Code Online (Sandbox Code Playgroud)

将其图片应更改为pwszAcctName的用户的名称和要设置为pwszPictureFile的图片的路径传递.将reserved设置为0.必须在调用此函数之前初始化COM.

根据Microsoft的说法,您不应该依赖未记录的功能,因为可以使用Windows上安装的任何修补程序删除或更改它们.

  • Downvote是我手机浏览器的一个迷路点击.不确定是怎么回事.现在删除了.也就是说,我不得不说使用这样的未记录的功能会让我感到不安,特别是当有记录的方法可以做到这一点时,顺便产生相同的结果. (3认同)