• 在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:UsersAdministratorDesktop
    
    1:
    
    2:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuPrograms
    
    3:
    
    4:
    
    5:C:UsersAdministratorDocuments
    
    6:C:UsersAdministratorFavorites
    
    7:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
    
    8:C:UsersAdministratorAppDataRoamingMicrosoftWindowsRecent
    
    9:C:UsersAdministratorAppDataRoamingMicrosoftWindowsSendTo
    
    10:
    
    11:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart Menu
    
    12:
    
    13:C:UsersAdministratorMusic
    
    14:C:UsersAdministratorVideos
    
    15:
    
    16:C:UsersAdministratorDesktop
    
    17:
    
    18:
    
    19:C:UsersAdministratorAppDataRoamingMicrosoftWindowsNetwork Shortcuts
    
    20:C:WindowsFonts
    
    21:C:UsersAdministratorAppDataRoamingMicrosoftWindowsTemplates
    
    22:C:ProgramDataMicrosoftWindowsStart Menu
    
    23:C:ProgramDataMicrosoftWindowsStart MenuPrograms
    
    24:C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
    
    25:C:UsersPublicDesktop
    
    26:C:UsersAdministratorAppDataRoaming
    
    27:C:UsersAdministratorAppDataRoamingMicrosoftWindowsPrinter Shortcuts
    
    28:C:UsersAdministratorAppDataLocal
    
    29:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
    
    30:C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
    
    31:C:UsersAdministratorFavorites
    
    32:C:UsersAdministratorAppDataLocalMicrosoftWindowsTemporary Internet Files
    
    33:C:UsersAdministratorAppDataRoamingMicrosoftWindowsCookies
    
    34:C:UsersAdministratorAppDataLocalMicrosoftWindowsHistory
    
    35:C:ProgramData
    
    36:C:Windows
    
    37:C:WindowsSystem32
    
    38:C:Program Files (x86)
    
    39:C:UsersAdministratorPictures
    
    40:C:UsersAdministrator
    
    41:C:WindowsSysWOW64
    
    42:C:Program Files (x86)
    
    43:C:Program Files (x86)Common Files
    
    44:C:Program Files (x86)Common Files
    
    45:C:ProgramDataMicrosoftWindowsTemplates
    
    46:C:UsersPublicDocuments
    
    47:C:ProgramDataMicrosoftWindowsStart MenuProgramsAdministrative Tools
    
    48:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsAdministrative Tools
    
    49:
    
    50:
    
    51:
    
    52:
    
    53:C:UsersPublicMusic
    
    54:C:UsersPublicPictures
    
    55:C:UsersPublicVideos
    
    56:C:WindowsResources
    
    57:
    
    58:
    
    59:C:UsersAdministratorAppDataLocalMicrosoftWindowsBurnBurn
    
    
    
    文字结果 可以用 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客户端
  • 相关阅读:
    从yield关键字看IEnumerable和Collection的区别
    Windows Azure Developer Guidance Map(含PDF下载)
    关于CLR内存管理一些深层次的讨论[上篇]
    关于CLR内存管理一些深层次的讨论[下篇]
    当你的博客文章的作者变成“编辑整理”,你作何感想?
    我看周马,以及3Q大战背后的社会问题
    一个完整的用于追踪数据改变的解决方案
    与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
    如果在BackgroundWorker运行过程中关闭窗体…
    采用一个自创的"验证框架"实现对数据实体的验证[扩展篇]
  • 原文地址:https://www.cnblogs.com/CodeGear/p/11125042.html
Copyright © 2020-2023  润新知