西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)Delphi → 在delphi 獲取特殊目錄 SHGetSpecialFolderLocation SHGetPathFromIDList

在delphi 獲取特殊目錄 SHGetSpecialFolderLocation SHGetPathFromIDList

前往專題相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2015/7/21 10:31:21字體大。A-A+

作者:不詳點擊:879次評論:0次標簽: delphi

新浪體育app客戶端3.10.0.0 官網(wǎng)安卓版
  • 類型:新聞資訊大。33.8M語言:中文 評分:10.0
  • 標簽:
立即下載

在寫應用程序的時候,我們經(jīng)常會用到讀取windows系統(tǒng)的一些特殊的目錄。比如 桌面 快速啟動欄的路徑等等。

下面介紹兩個API函數(shù) SHGetSpecialFolderLocation SHGetPathFromIDList

我們先看代碼:

通過 SHGetSpecialFolderLocation、SHGetPathFromIDList 函數(shù)獲取常用路徑

這個是在windows下顯示的結(jié)果


這是在 win7下面顯示的結(jié)果

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


文字結(jié)果 可以用 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 函數(shù)來自這個單元}
{獲取常用路徑(的)函數(shù)}
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 函數(shù)需要(的)參數(shù)定義成了一個常數(shù)數(shù)組}
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.
窗體文件:object Form1: TForm1
 Left = 0
 Top = 0
 Caption = 'Form1'
 ClientHeight = 318
 ClientWidth = 465
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'Tahoma'
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Memo1: TMemo
  Left = 0
  Top = 0
  Width = 465
  Height = 318
  Align = alClient
  Lines.Strings = (
   'Memo1')
  ScrollBars = ssBoth
  TabOrder = 0
  ExplicitWidth = 409
 end
end

 

看一個本站編寫的函數(shù)

//獲取系統(tǒng)特殊文件夾路徑(SHGetSpecialFolderLocation)
procedure getFolder(aLocation: integer;var path:string);//path為輸出參數(shù)
 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;

調(diào)用的時候就只需要

var

path:string;

 getFolder(16,path); 這樣就可以了



    足球社區(qū)
    (10)足球社區(qū)
    足球社區(qū)系列由西西為大家整理而來,當前都市工作者亞健康問題嚴重,如果能引動大家的興趣而進行體育活動是一個十分不錯的選擇,無論是足球籃球,只要有你喜愛的運動項目,都可在平臺上找尋同城的興趣愛好者,一起找尋場地進行體育運動,豐富我們生活的同時也保障了我們的身體健康。功能簡介社交模塊踢球找球場找球隊找球員組織踢球活動,為業(yè)余球員提供全面的踢球信息,搭建業(yè)余球隊球員注冊體系。看球為國內(nèi)球迷提供門票信息服務(wù)...更多>>
    籃球資訊app
    (216)籃球資訊app
    籃球運動是大多數(shù)男生都很喜愛的運動之一,它以其對抗性可觀賞性等特點使得越來越多的人愛上了這項體育運動。有的人不打球,但對各項籃球賽事很感興趣,經(jīng)常關(guān)注各類比賽。小編在搜集整理了一些籃球資訊類的應用,文字直播比賽視頻球員動態(tài)等內(nèi)容一應俱全。各位球迷朋友們不要錯過了,快來看看吧。...更多>>
    體育新聞
    (58)體育新聞
    體育新聞應用匯聚全網(wǎng)各大體育新聞平臺軟件,為用戶帶來最全面的體育賽事資訊,無論是籃球足球羽毛球乒乓球,體育新聞一手掌握,為用戶帶來最新的熱點動態(tài),讓你為自己喜愛的球隊,喜歡的球員而吶喊喝彩,打開手機,就能暢享體育激情。最新資訊庫里勇士首節(jié)打爆湖人開局連勝創(chuàng)歷史北京時間今天上午,常規(guī)賽繼續(xù)進行。在一場受人矚目的較量中,勇士主場大勝湖人,取得開局連勝刷新歷史記錄。勇士核心控衛(wèi)庫里拿到分助攻,德雷蒙德格...更多>>
    lols5直播
    (16)lols5直播
    直播軟件西西下載專區(qū)為您提供英雄聯(lián)盟比賽直播軟件下載大全,包含電腦直播軟件和手機直播,并且還有眾多比賽視頻哦直播簡介已經(jīng)開打了一段時間,盡管中國隊的表現(xiàn)不盡人意,但是還是有眾多的玩家對比賽報以期待。英雄聯(lián)盟系列總決賽是比賽里面最高榮譽,各個強隊將齊聚在這偉大的殿堂,決出世界上最強的隊伍。西西本頁為您提供直播軟件下載,為您提供比賽視頻打包下載。直播軟件有哪些直播地址主要是官網(wǎng)的騰訊視頻語音以及龍珠斗...更多>>
    電視盒子軟件
    (35)電視盒子軟件
    電視盒子是一個連接電視機與互聯(lián)網(wǎng)的設(shè)備。電視機通過網(wǎng)絡(luò)電視盒連接互聯(lián)網(wǎng),收看網(wǎng)絡(luò)電視節(jié)目。樂寶智能電視盒為代表的主流品牌,為其搭載了目前市場上應用最廣的安卓系統(tǒng),讓傳統(tǒng)的電視機升級為智能化網(wǎng)絡(luò)化。讓電視機實現(xiàn)和智能手機平板電腦一樣的功能,讓電視機由用戶自行安裝和卸載軟件游戲等應用程序,實現(xiàn)無限的內(nèi)容無限的應用。電視盒子哪個好雖然各大電視廠商都發(fā)布了一些電視盒子軟件,但是西西覺得目前來說還是華為密盒...更多>>
    • 樂視影視 letvv6.0.1 VIP去廣告特別

      12-05 / 31.3M

      推薦理由:樂視影視Android客戶端是由樂視網(wǎng)傾情打造的一款精品視頻應用,包括視頻的在線播放、收藏記錄、播放記錄、多
    • 小米盒子遙控器v4.1 安卓手機版

      02-08 / 2.7M

      推薦理由:小米盒子遙控器:一款可以將你的Android手機變成小米盒子遙控器的控制應用,軟件功能十分強大,讓你拋開傳統(tǒng)
    • APUS消息提醒v1.4.0 安卓版

      05-25 / 513KB

      推薦理由:APUS消息提醒是APUS桌面的一個插件,它能幫助您及時注意到未接來電和未讀短信。當存在消息提醒時,電話或短
    • 電視qq2.0安卓版

      03-20 / 6.3M

      推薦理由:騰訊電視qq手機版,裝逼必備的一個QQ聊天軟件,因為現(xiàn)在還是測試版本,小編在安裝登入的時候出現(xiàn)了錯誤,如
    • 快樂TV云點播v5.0 綠色版

      10-23 / 1.5M

      推薦理由:快樂TV云點播是一款在種子搜索及播放工具,提供了海量影片庫資源,同時還自帶了種子搜索器功能,多個通道,
    • TV客v1.0.1 安卓版

      08-21 / 14.0M

      推薦理由:TV客是由北京閃聯(lián)云視信息技術(shù)有限公司推出的一款基于話題興趣的電視社交應用,脫離傳統(tǒng)電視單調(diào)的觀看模式

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)