|
引用单元
uses ShlObj
获取方法:
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;
参数可以为下面这些:
1 CSIDL_DESKTOP , { = $0000 }
2 CSIDL_INTERNET , { = $0001 }
3 CSIDL_PROGRAMS , { = $0002 }
4 CSIDL_CONTROLS , { = $0003 }
5 CSIDL_PRINTERS , { = $0004 }
6 CSIDL_PERSONAL , { = $0005 }
7 CSIDL_FAVORITES , { = $0006 }
8 CSIDL_STARTUP , { = $0007 }
9 CSIDL_RECENT , { = $0008 }
10 CSIDL_SENDTO , { = $0009 }
11 CSIDL_BITBUCKET , { = $000a }
12 CSIDL_STARTMENU , { = $000b }
13 CSIDL_MYDOCUMENTS , { = $000c }
14 CSIDL_MYMUSIC , { = $000d }
15 CSIDL_MYVIDEO , { = $000e }
16 CSIDL_DESKTOPDIRECTORY , { = $0010 }
17 CSIDL_DRIVES , { = $0011 }
18 CSIDL_NETWORK , { = $0012 }
19 CSIDL_NETHOOD , { = $0013 }
20 CSIDL_FONTS , { = $0014 }
21 CSIDL_TEMPLATES , { = $0015 }
22 CSIDL_COMMON_STARTMENU , { = $0016 }
23 CSIDL_COMMON_PROGRAMS , { = $0017 }
24 CSIDL_COMMON_STARTUP , { = $0018 }
25 CSIDL_COMMON_DESKTOPDIRECTORY , { = $0019 }
26 CSIDL_APPDATA , { = $001a }
27 CSIDL_PRINTHOOD , { = $001b }
28 CSIDL_LOCAL_APPDATA , { = $001c }
29 CSIDL_ALTSTARTUP , { = $001d }
30 CSIDL_COMMON_ALTSTARTUP , { = $001e }
31 CSIDL_COMMON_FAVORITES , { = $001f }
32 CSIDL_INTERNET_CACHE , { = $0020 }
33 CSIDL_COOKIES , { = $0021 }
34 CSIDL_HISTORY , { = $0022 }
35 CSIDL_COMMON_APPDATA , { = $0023 }
36 CSIDL_WINDOWS , { = $0024 }
37 CSIDL_SYSTEM , { = $0025 }
38 CSIDL_PROGRAM_FILES , { = $0026 }
39 CSIDL_MYPICTURES , { = $0027 }
40 CSIDL_PROFILE , { = $0028 }
41 CSIDL_SYSTEMX86 , { = $0029 }
42 CSIDL_PROGRAM_FILESX86 , { = $002a }
43 CSIDL_PROGRAM_FILES_COMMON , { = $002b }
44 CSIDL_PROGRAM_FILES_COMMONX86 , { = $002c }
45 CSIDL_COMMON_TEMPLATES , { = $002d }
46 CSIDL_COMMON_DOCUMENTS , { = $002e }
47 CSIDL_COMMON_ADMINTOOLS , { = $002f }
48 CSIDL_ADMINTOOLS , { = $0030 }
49 CSIDL_CONNECTIONS , { = $0031 }
50 CSIDL_COMMON_MUSIC , { = $0035 }
51 CSIDL_COMMON_PICTURES , { = $0036 }
52 CSIDL_COMMON_VIDEO , { = $0037 }
53 CSIDL_RESOURCES , { = $0038 }
54 CSIDL_RESOURCES_LOCALIZED , { = $0039 }
55 CSIDL_COMMON_OEM_LINKS , { = $003a }
56 CSIDL_CDBURN_AREA , { = $003b }
57 CSIDL_COMPUTERSNEARME , { = $003d }
58 CSIDL_PROFILES { = $003e }
对应结果(WIN7操作系统):
0: C:\Users\zhubk\Desktop
2: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
5: C:\Users\zhubk\Documents
6: C:\Users\zhubk\Favorites
7: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
8: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Recent
9: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\SendTo
11: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Start Menu
13: C:\Users\zhubk\Music
14: C:\Users\zhubk\Videos
16: C:\Users\zhubk\Desktop
19: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Network Shortcuts
20: C:\Windows\Fonts
21: C:\Users\zhubk\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\zhubk\AppData\Roaming
27: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
28: C:\Users\zhubk\AppData\Local
29: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
30: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
31: C:\Users\zhubk\Favorites
32: C:\Users\zhubk\AppData\Local\Microsoft\Windows\Temporary Internet Files
33: C:\Users\zhubk\AppData\Roaming\Microsoft\Windows\Cookies
34: C:\Users\zhubk\AppData\Local\Microsoft\Windows\History
35: C:\ProgramData
36: C:\Windows
37: C:\Windows\System32
38: C:\Program Files
39: C:\Users\zhubk\Pictures
40: C:\Users\zhubk
41: C:\Windows\System32
42: C:\Program Files
43: C:\Program Files\Common Files
44: C:\Program Files\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\zhubk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
53: C:\Users\Public\Music
54: C:\Users\Public\Pictures
55: C:\Users\Public\Videos
56: C:\Windows\Resources
59: C:\Users\zhubk\AppData\Local\Microsoft\Windows\Burn\Burn
import fsys;
import console;
console.log( fsys.getSpecial(0x5 /*_CSIDL_MYDOCUMENTS*/,"/../../" ) )
// XP: C:\Document and Settings
//WIN7: C:\Users
//表示“我的文档”桌面项的虚拟文件夹。
console.log( fsys.getSpecial(0x2e /*_CSIDL_COMMON_DOCUMENTS*/,"/../" ) )
// XP: C:\Document and Settings\All Users
//WIN7: C:\ProgramData
//包含所有用户所共用文档的文件系统目录。
console.log( fsys.getSpecial(0x23 /*_CSIDL_COMMON_APPDATA*/) )
// XP: C:\Document and Settings\All Users\Application Data
//WIN7: C:\ProgramData
//包含所有用户的应用程序数据的文件系统目录。
console.log( fsys.getSpecial(0x19 /*_CSIDL_COMMON_DESKTOPDIRECTORY*/) )
// XP: C:\Document and Settings\All Users\desktop
//WIN7: C:\Users\Public\Desktop
//包含显示在所有用户的桌面上的文件和文件夹的文件系统目录。
console.log( fsys.getSpecial(0x2e /*_CSIDL_COMMON_DOCUMENTS*/) )
// XP: C:\Document and Settings\All Users\Documents
//WIN7: C:\Users\Public\Documents
//包含所有用户所共用文档的文件系统目录。
console.log( fsys.getSpecial(0x1f/*_CSIDL_COMMON_FAVORITES*/) )
// XP: C:\Document and Settings\All Users\Favorites
//WIN7: C:\Users\Public\Favorites
//作为所有用户所共用收藏夹项的公共储存库的文件系统目录。
console.log( fsys.getSpecial(0x2d /*_CSIDL_COMMON_TEMPLATES*/) )
// XP: C:\Document and Settings\All Users\Templates
//WIN7: C:\ProgramData\Microsoft\Windows\Templates
//包含可用于所有用户的模板的文件系统目录。
console.log( fsys.getSpecial(0x16 /*_CSIDL_COMMON_STARTMENU*/) )
// XP: C:\Document and Settings\All Users\「开始」菜单
//WIN7: C:\ProgramData\Microsoft\Windows\Start Menu
//包含在所有用户的“开始”菜单上出现的程序和文件夹的文件系统目录。
console.log( fsys.getSpecial(0x6 /*_CSIDL_FAVORITES*/) )
// XP: C:\Document and Settings\All Users\收藏夹
//WIN7: C:\Users\Public\Favorites
//作为用户的收藏夹项的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0x1a /*_CSIDL_APPDATA*/) )
// XP: C:\Document and Settings\Default Users\Application Data
//WIN7: C:\Users\Default\AppData\Roaming
//作为应用程序特定数据的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0x21/*_CSIDL_COOKIES*/) )
// XP: C:\Document and Settings\Default Users\Cookies
//WIN7: C:\Users\Default\AppData\Roaming\Microsoft\Windows\Cookies
//作为 Internet Cookie 的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0x1c /*_CSIDL_LOCAL_APPDATA*/,"/../") )
// XP: C:\Document and Settings\Default Users\Local Settings
//WIN7: C:\Users\Default\AppData\Local
//作为本地(非漫游)应用程序的数据储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0x5 /*_CSIDL_MYDOCUMENTS*/) )
// XP: C:\Document and Settings\Default Users\My Documents
//WIN7: C:\Users\Default\Documents
//表示“我的文档”桌面项的虚拟文件夹。
console.log( fsys.getSpecialDefault(0x13 /*_CSIDL_NETHOOD*/) )
// XP: C:\Document and Settings\Default Users\NetHood
//WIN7: C:\Users\Default\AppData\Roaming\Microsoft\Windows\Network Shortcuts
//包含可能存在于“网络邻居”虚拟文件夹中的链接对象的文件系统目录。该目录不同于 CSIDL_NETWORK,后者表示的是网络命名空间根目录。
console.log( fsys.getSpecialDefault(0x1b /*_CSIDL_PRINTHOOD*/) )
// XP: C:\Document and Settings\Default Users\PrintHood
//WIN7: C:\User\Default\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
//含可能存在于“打印机”虚拟文件夹中的链接对象的文件系统目录。
console.log( fsys.getSpecialDefault(0x8 /*_CSIDL_RECENT*/) )
// XP: C:\Document and Settings\Default Users\Recent
//WIN7: C:\User\Default\AppData\Roaming\Microsoft\Windows\Recent
//包含指向用户最近使用文档的快捷方式的文件系统目录。
console.log( fsys.getSpecialDefault(0x9 /*_CSIDL_SENDTO*/) )
// XP: C:\Document and Settings\Default Users\SendTo
//WIN7: C:\User\Default\AppData\Roaming\Microsoft\Windows\SendTo
//包含“发送到”菜单项的文件系统目录。
console.log( fsys.getSpecialDefault(0xb /*_CSIDL_STARTMENU*/) )
// XP: C:\Document and Settings\Default Users\Start Menu
//WIN7: C:\User\Default\AppData\Roaming\Microsoft\Windows\Start Menu
//包含“开始”菜单项的文件系统目录。
console.log( fsys.getSpecialDefault(0x15/*_CSIDL_TEMPLATES*/) )
// XP: C:\Document and Settings\Default Users\Templates
//WIN7: C:\User\Default\AppData\Roaming\Microsoft\Windows\Templates
//作为文档模板的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0xd /*_CSIDL_MYMUSIC*/) )
// XP: C:\Document and Settings\Default Users\My Documents\My Music
//WIN7: C:\Users\Public\Music
//作为音乐文件的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0x27 /*_CSIDL_MYPICTURES*/) )
// XP: C:\Document and Settings\Default Users\My Documents\My Pictures
//WIN7: C:\Users\Public\Pictures
//作为图像文件的公共储存库的文件系统目录。
console.log( fsys.getSpecialDefault(0xe /*_CSIDL_MYVIDEO*/) )
// XP: C:\Document and Settings\Default Users\My Documents\My Videos
//WIN7: C:\Users\Public\Videos
//作为视频文件的公共储存库的文件系统目录。
console.log( fsys.getSpecial(0x1a /*_CSIDL_APPDATA*/) )
// XP: C:\Document and Settings\用户名\Application Data
//WIN7: C:\Users\用户名\AppData\Roaming
//作为应用程序特定数据的公共储存库的文件系统目录。
console.log( fsys.getSpecial( 0x21/*_CSIDL_COOKIES*/) )
// XP: C:\Document and Settings\用户名\Cookies
//WIN7: C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Cookies
//作为 Internet Cookie 的公共储存库的文件系统目录。
console.log( fsys.getSpecial(0x1c /*_CSIDL_LOCAL_APPDATA*/,"/../") )
// XP: C:\Document and Settings\用户名\Local Settings
//WIN7: C:\Users\用户名\AppData\Local
//作为本地(非漫游)应用程序的数据储存库的文件系统目录。
console.log( fsys.getSpecial(0x5 /*_CSIDL_MYDOCUMENTS*/) )
// XP: C:\Document and Settings\用户名\My Documents
//WIN7: C:\Users\用户名\Documents
//表示“我的文档”桌面项的虚拟文件夹。
console.log( fsys.getSpecial(0x13 /*_CSIDL_NETHOOD*/) )
// XP: C:\Document and Settings\用户名\NetHood
//WIN7: C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Network Shortcuts
//包含可能存在于“网络邻居”虚拟文件夹中的链接对象的文件系统目录。该目录不同于 CSIDL_NETWORK,后者表示的是网络命名空间根目录。
console.log( fsys.getSpecial(0x1b /*_CSIDL_PRINTHOOD*/) )
// XP: C:\Document and Settings\用户名\PrintHood
//WIN7: C:\User\用户名\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
//含可能存在于“打印机”虚拟文件夹中的链接对象的文件系统目录。
console.log( fsys.getSpecial(0x8 /*_CSIDL_RECENT*/) )
// XP: C:\Document and Settings\用户名\Recent
//WIN7: C:\User\用户名\AppData\Roaming\Microsoft\Windows\Recent
//包含指向用户最近使用文档的快捷方式的文件系统目录。
console.log( fsys.getSpecial(0x9 /*_CSIDL_SENDTO*/) )
// XP: C:\Document and Settings\用户名\SendTo
//WIN7: C:\User\用户名\AppData\Roaming\Microsoft\Windows\SendTo
//包含“发送到”菜单项的文件系统目录。
console.log( fsys.getSpecial(0x15/*_CSIDL_TEMPLATES*/) )
// XP: C:\Document and Settings\用户名\Templates
//WIN7: C:\User\用户名\AppData\Roaming\Microsoft\Windows\Templates
//作为文档模板的公共储存库的文件系统目录
console.log( fsys.getSpecial(0xb /*_CSIDL_STARTMENU*/) )
// XP: C:\Document and Settings\用户名\「开始」菜单
//WIN7: C:\User\用户名\AppData\Roaming\Microsoft\Windows\Start Menu
//包含“开始”菜单项的文件系统目录。
console.log( fsys.getSpecial(0x22/*_CSIDL_HISTORY*/) )
// XP: C:\Document and Settings\用户名\Local Settings\History
//WIN7: C:\Users\用户名\AppData\Local\Microsoft\Windows\History
//作为 Internet 历史记录项的公共储存库的文件系统目录
console.log( fsys.getSpecial(0x20/*_CSIDL_INTERNET_CACHE*/) )
// XP: C:\Document and Settings\用户名\Local Settings\Temporary Internet Files
//WIN7: C:\Users\用户名\AppData\Local\Microsoft\Windows\Temporary Internet Files
//作为临时 Internet 文件的公共储存库的文件系统目录
|
|