Delphi 获取系统特殊文件夹位置路径(桌面、收藏夹、我的电脑、开始菜单等)

Delphi 获取系统特殊文件夹位置路径(桌面、收藏夹、我的电脑、开始菜单等)

获取系统中特殊目录,例如:桌面、收藏夹、历史文件、字体等。在windows各版本中他们的位置是不同的,有两个特殊的windows API:

Function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer; var ppidl: PItemIDList): HResult; stdcall;
Function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar):                BOOL;stdcall;

nFolder参数:

  •       CSIDL_DESKTOP://桌面;
  •       CSIDL_DRIVERS://我的电脑;
  •       CSIDL_FAVORITES://收藏夹;
  •       CSIDL_STARTUP://开始菜单;
  •       CSIDL_NETWORK://网上邻居;

使用示例:(获取桌面路径)

uses shlobj;

var
  pitem:PITEMIDLIST;
  s:string;
begin
  shGetSpecialFolderLocation(handle,CSIDL_DESKTOP,pitem);
  setlength(s,100);
  shGetPathFromIDList(pitem,pchar(s));
end;

  

更多WinAPI 点击查看: SHGetSpecialFolderLocationSHGetPathFromIDList

创建时间:2020.11.24  更新时间:

原文地址:https://www.cnblogs.com/guorongtao/p/14029242.html