在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList

在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList
前往专题相关软件相关文章发表评论 来源:本站整理时间:2015/7/21 10:31:21字体大小:A-A+

作者:不详点击:1334评论:0次标签: delphi

新浪体育app客户端3.10.0.0 官网安卓版
类型:新闻资讯大小:33.8M语言:中文 评分:10.0标签:足球社区篮球资讯app体育新闻lols5直播电视盒子软件立即下载
在写应用程序的时候,我们经常会用到读取windows系统的一些特殊的目录。比如 桌面 快速启动栏的路径等等。

下面介绍两个API函数 SHGetSpecialFolderLocation SHGetPathFromIDList

我们先看代码:

通过 SHGetSpecialFolderLocation、SHGetPathFromIDList 函数获取常用路径

这个是在windows下显示的结果



1.png

这是在 win7下面显示的结果


0:C:\Users\Administrator\Desktop

1:

2:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

3:

4:

5:C:\Users\Administrator\Documents

6:C:\Users\Administrator\Favorites

7:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

8:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent

9:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo

10:

11:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu

12:

13:C:\Users\Administrator\Music

14:C:\Users\Administrator\Videos

15:

16:C:\Users\Administrator\Desktop

17:

18:

19:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Network Shortcuts

20:C:\Windows\Fonts

21:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Templates

22:C:\ProgramData\Microsoft\Windows\Start Menu

23:C:\ProgramData\Microsoft\Windows\Start Menu\Programs

24:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

25:C:\Users\Public\Desktop

26:C:\Users\Administrator\AppData\Roaming

27:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Printer Shortcuts

28:C:\Users\Administrator\AppData\Local

29:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

30:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

31:C:\Users\Administrator\Favorites

32:C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files

33:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies

34:C:\Users\Administrator\AppData\Local\Microsoft\Windows\History

35:C:\ProgramData

36:C:\Windows

37:C:\Windows\System32

38:C:\Program Files (x86)

39:C:\Users\Administrator\Pictures

40:C:\Users\Administrator

41:C:\Windows\SysWOW64

42:C:\Program Files (x86)

43:C:\Program Files (x86)\Common Files

44:C:\Program Files (x86)\Common Files

45:C:\ProgramData\Microsoft\Windows\Templates

46:C:\Users\Public\Documents

47:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools

48:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools

49:

50:

51:

52:

53:C:\Users\Public\Music

54:C:\Users\Public\Pictures

55:C:\Users\Public\Videos

56:C:\Windows\Resources

57:

58:

59:C:\Users\Administrator\AppData\Local\Microsoft\Windows\Burn\Burn



文字结果 可以用 Ctrl+F 来查找



代码文件:unit Unit1;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TForm1 = class(TForm)
  Memo1: TMemo;
  procedure FormCreate(Sender: TObject);
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
uses ShlObj; {SHGetSpecialFolderLocation、SHGetPathFromIDList 函数来自这个单元}
{获取常用路径(的)函数}
function GetPath(FID: Integer): string;
var
 pidl: PItemIDList;
 path: array[0..MAX_PATH] of Char;
begin
 SHGetSpecialFolderLocation(0, FID, pidl);
 SHGetPathFromIDList(pidl, path);
 Result := path;
end;
{测试时, 我把 SHGetSpecialFolderLocation 函数需要(的)参数定义成了一个常数数组}
const
 arr: array[0..57] of Integer = (
  CSIDL_DESKTOP         , { = $0000 }
  CSIDL_INTERNET        , { = $0001 }
  CSIDL_PROGRAMS        , { = $0002 }
  CSIDL_CONTROLS        , { = $0003 }
  CSIDL_PRINTERS        , { = $0004 }
  CSIDL_PERSONAL        , { = $0005 }
  CSIDL_FAVORITES        , { = $0006 }
  CSIDL_STARTUP         , { = $0007 }
  CSIDL_RECENT         , { = $0008 }
  CSIDL_SENDTO         , { = $0009 }
  CSIDL_BITBUCKET        , { = $000a }
  CSIDL_STARTMENU        , { = $000b }
  CSIDL_MYDOCUMENTS       , { = $000c }
  CSIDL_MYMUSIC         , { = $000d }
  CSIDL_MYVIDEO         , { = $000e }
  CSIDL_DESKTOPDIRECTORY    , { = $0010 }
  CSIDL_DRIVES         , { = $0011 }
  CSIDL_NETWORK         , { = $0012 }
  CSIDL_NETHOOD         , { = $0013 }
  CSIDL_FONTS          , { = $0014 }
  CSIDL_TEMPLATES        , { = $0015 }
  CSIDL_COMMON_STARTMENU    , { = $0016 }
  CSIDL_COMMON_PROGRAMS     , { = $0017 }
  CSIDL_COMMON_STARTUP     , { = $0018 }
  CSIDL_COMMON_DESKTOPDIRECTORY , { = $0019 }
  CSIDL_APPDATA         , { = $001a }
  CSIDL_PRINTHOOD        , { = $001b }
  CSIDL_LOCAL_APPDATA      , { = $001c }
  CSIDL_ALTSTARTUP       , { = $001d }
  CSIDL_COMMON_ALTSTARTUP    , { = $001e }
  CSIDL_COMMON_FAVORITES    , { = $001f }
  CSIDL_INTERNET_CACHE     , { = $0020 }
  CSIDL_COOKIES         , { = $0021 }
  CSIDL_HISTORY         , { = $0022 }
  CSIDL_COMMON_APPDATA     , { = $0023 }
  CSIDL_WINDOWS         , { = $0024 }
  CSIDL_SYSTEM         , { = $0025 }
  CSIDL_PROGRAM_FILES      , { = $0026 }
  CSIDL_MYPICTURES       , { = $0027 }
  CSIDL_PROFILE         , { = $0028 }
  CSIDL_SYSTEMX86        , { = $0029 }
  CSIDL_PROGRAM_FILESX86    , { = $002a }
  CSIDL_PROGRAM_FILES_COMMON  , { = $002b }
  CSIDL_PROGRAM_FILES_COMMONX86 , { = $002c }
  CSIDL_COMMON_TEMPLATES    , { = $002d }
  CSIDL_COMMON_DOCUMENTS    , { = $002e }
  CSIDL_COMMON_ADMINTOOLS    , { = $002f }
  CSIDL_ADMINTOOLS       , { = $0030 }
  CSIDL_CONNECTIONS       , { = $0031 }
  CSIDL_COMMON_MUSIC      , { = $0035 }
  CSIDL_COMMON_PICTURES     , { = $0036 }
  CSIDL_COMMON_VIDEO      , { = $0037 }
  CSIDL_RESOURCES        , { = $0038 }
  CSIDL_RESOURCES_LOCALIZED   , { = $0039 }
  CSIDL_COMMON_OEM_LINKS    , { = $003a }
  CSIDL_CDBURN_AREA       , { = $003b }
  CSIDL_COMPUTERSNEARME     , { = $003d }
  CSIDL_PROFILES         { = $003e }
 );
{测试}
procedure TForm1.FormCreate(Sender: TObject);
var
 i: Integer;
 s: string;
begin
 Memo1.Clear;
 for i := 0 to Length(Arr) - 1 do
 begin
  s := GetPath(Arr[i]);
  if s<>'' then Memo1.Lines.Add(Format('%d:'#9'%s', [Arr[i], s]));
 end;
end;
end.

 frxpngimage

看一个本站编写的函数

//获取系统特殊文件夹路径(SHGetSpecialFolderLocation)
procedure getFolder(aLocation: integer;var path:string);//path为输出参数
 var
  pIdl: PItemIDList; 
  hPath: PChar;
begin
   if SUCCEEDED(SHGetSpecialFolderLocation(0, aLocation, pidl)) then
  begin
   hPath := StrAlloc(max_path) ;
   SHGetPathFromIDList(pIdl, hPath) ;
   path:=strpas(hpath);
   StrDispose(hPath) ;
  end;
 end;

调用的时候就只需要

var

path:string;

 getFolder(16,path); 这样就可以了





    1/2    下一页
足球社区篮球资讯app体育新闻lols5直播电视盒子软件
足球社区
足球社区
足球社区系列由西西为大家整理而来,当前都市工作者亚健康问题严重,如果能引动大家的兴趣而进行体育活动是一个十分不错的选择,无论是足球篮球,只要有你喜爱的运动项目,都可在平台上找寻同城的兴趣爱好者,一起找寻场地进行体育运动,丰富我们生活的同时也保障了我们的身体健康。功能简介社交模块踢球找球场找球队找球员组织踢球活动,为业余球员提供全面的踢球信息,搭建业余球队球员注册体系。看球为国内球迷提供门票信息服务...更多>>
 下载
腾讯体育官网手机appV4.5.0 官网安01-13 / 16.1M 推荐理由:腾讯体育手机app是腾讯体育平台推出的一款便捷的手机体育直播app。通过这款app,你可以观看赛事直播,也能第
 下载
踢球啊(足球交友)V1.4.0 官网安卓09-14 / 5.0M 推荐理由:踢球啊app是一款兴趣社交应用,为广大足球爱好者量身定制,只需要在平台上发布场地,就能快速集结同城爱好者
 下载
中超社区足球资讯V2.5 安卓版07-21 / 6.9M 推荐理由:想要最新最热的足球资讯吗?想要不一样的足球移动媒体体验吗?赶快来加入中超社区吧!中超社区是为足球迷量
 下载
足球社区app2.9.0 安卓版05-29 / 18.5M 推荐理由:?足球社区app是一款为球迷服务的资讯类软件吗,各种赛事信息第一时间知道,比分结果时刻分享;专业足
 下载
乐奇足球-足球订场约战平台6.5.0 官03-28 / 17.5M 推荐理由:在繁忙的工作之余,和朋友们一起去球场上面踢踢球,是许多人闲暇之时的休闲方式。而如果想要来一场精彩的足
 下载
足球比分app4.4.1安卓最新版09-14 / 5.2M 推荐理由:足球比分app,为用户带来最新,最全的各大足球赛事比分结果,不仅如此,正在进行的比赛我们也会为你带来详细
相关文章
05-23Delphi XE4与SQLite的安装和使用03-14delphi中使用ADOQuery时的几个问题解决方案03-04多线程的基本概念和Delphi线程对象Tthread介绍12-06Delphi实现的线程池代码单元12-01delphi和sqlserver交互、delphi调用SQL Server存储过程11-18Delphi 与 VC 共享接口和对象,互相通信、互相操作实例分享10-08Delphi在调试的时候查看变量的值09-25delphi XE2遍历文件夹下的指定扩展名文件08-29delphi 中几种多线程操作方式08-29Delphi 中多线程类 TThread 中文帮助
相关评论
阅读本文后您有什么感想? 已有2人给出评价!
0

喜欢喜欢
0

顶顶
0

难过难过
1

囧囧
0

围观围观
1

无聊无聊
热门评论
最新评论
发表评论查看所有评论(0)
昵称:  
西西网友
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲 
字数: 0/500 (您的评论需要经过审核才能显示)
推荐文章
在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList Delphi通过ADO读写数据库

Discuz 验证码图片识别
Delphi通过ADO读写数据库
Embarcadero Delphi XE2 完整版/精简版下载(支持Ios开发)
在delphi Xe2 下面创建您的第一个iOS程式(中文)
Delphi 美化控件 Raize Components 发布最新版本V5.1
相关下载
名称大小下载

1Borland Delphi83.1M
下载
2Castalia Suite for Delphi XE717.5M
下载
3DBISAM for Delphi XE29.0M
下载
4delphi 20061.22G
下载
5delphi 2007 for php1.15G
下载
6Delphi 2007 for win321.15G
下载
7delphi 20091.84G
下载
8delphi 2010604KB
下载
9Delphi 5224.2M
下载
10Delphi 7(集成控件)211.9M
下载
最新文章

在delphi 获取特殊目录 SHGetSpecialFo

15-07-21

Delphi通过ADO读写数据库

12-08-28

Delphi 2011 发布了 跨 MAC,LINUX,WIND

10-11-29
联系我们 | 发展历程 | 版权声明 | 下载帮助(?) | 广告服务 | 软件提交 | 网站地图 | 意见反馈

声明:西西软件园为非赢利性网站 不接受任何赞助和广告 鄂ICP备11008782号-1

正文内容
相关下载
相关文章
发表评论
返回顶部
在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList
前往专题新浪体育app客户端标签:足球社区篮球资讯app体育新闻lols5直播电视盒子软件新浪体育app客户端

 

上一篇:APP - 解决 XMind 8 Update7 闪退问题


下一篇:windows7-32位系统下部署flask程序(wsgi简单快速配置)---编辑中