PB取系统文件夹,有很多API,如GetSystemDirectoryA可以得到SYSTEM32系统文件夹,GetTempPathA得到临 时文件夹,GetWindowsDirectoryA得到windows文件夹。这里再介绍一个有用的API - SHGetSpecialFolderPath ,这个api除了能得到以上列举的文件夹,还能得到更多的系统文件夹。
具体用法:
声明API: function ulong SHGetSpecialFolderPath(long hwndOwner,ref string lpszPath,int nFolder,boolean fCreate ) LIBRARY "shell32.dll" ALIAS FOR "SHGetSpecialFolderPathA"
Function Long GetDesktopWindow() Library 'user32.dll'
hwndOwner :用GetDesktopWindow API取一个窗口句柄。
lpszPath:返回的路径
nFolder:标识代号
fCreate:true :如果文件夹不存在则创建,false:不创建
lpszPath和nFolder对应关系:
nFolder | lpszPath |
0 | C:/Documents and Settings/当前用户/桌面 |
2 | C:/Documents and Settings/当前用户/「开始」菜单/程序 |
5 | C:/Documents and Settings/当前用户/My Documents |
6 | C:/Documents and Settings/当前用户/Favorites |
7 | C:/Documents and Settings/当前用户/「开始」菜单/程序/启动 |
8 | C:/Documents and Settings/当前用户/Recent |
9 | C:/Documents and Settings/当前用户/SendTo |
11 | C:/Documents and Settings/当前用户/「开始」菜单 |
13 | C:/Documents and Settings/当前用户/My Documents/My Music |
14 | C:/Documents and Settings/当前用户/My Documents/My Videos |
16 | C:/Documents and Settings/当前用户/桌面 |
19 | C:/Documents and Settings/当前用户/NetHood |
20 | C:/WINDOWS/Fonts |
21 | C:/Documents and Settings/当前用户/Templates |
22 | C:/Documents and Settings/All Users/「开始」菜单 |
23 | C:/Documents and Settings/All Users/「开始」菜单/程序 |
24 | C:/Documents and Settings/All Users/「开始」菜单/程序/启动 |
25 | C:/Documents and Settings/All Users/桌面 |
26 | C:/Documents and Settings/当前用户/Application Data |
27 | C:/Documents and Settings/当前用户/PrintHood |
28 | C:/Documents and Settings/当前用户/Local Settings/Application Data |
31 | C:/Documents and Settings/All Users/Favorites |
32 | C:/Documents and Settings/当前用户/Local Settings/Temporary Internet Files |
33 | C:/Documents and Settings/当前用户/Cookies |
34 | C:/Documents and Settings/当前用户/Local Settings/History |
35 | C:/Documents and Settings/All Users/Application Data |
36 | C:/WINDOWS |
37 | C:/WINDOWS/system32 |
38 | C:/Program Files |
39 | C:/Documents and Settings/当前用户/My Documents/My Pictures |
40 | C:/Documents and Settings/当前用户 |
43 | C:/Program Files/Common Files |
45 | C:/Documents and Settings/All Users/Templates |
46 | C:/Documents and Settings/All Users/Documents |
47 | C:/Documents and Settings/All Users/「开始」菜单/程序/管理工具 |
48 | C:/Documents and Settings/当前用户/「开始」菜单/程序/管理工具 |
53 | C:/Documents and Settings/All Users/Documents/My Music |
54 | C:/Documents and Settings/All Users/Documents/My Pictures |
55 | C:/Documents and Settings/All Users/Documents/My Videos |
56 | C:/WINDOWS/resources |
59 | C:/Documents and Settings/当前用户/Local Settings/Application Data/Microsoft/CD Burning |
函数写法:
//====================================================================
// 函数: u_fun::uf_directory_get()
//--------------------------------------------------------------------
// 描述: 取系统文件夹
//--------------------------------------------------------------------
// 参数:
// value integer ai_folder
//--------------------------------------------------------------------
// 返回: string
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
string ret
long ll_null
ret=space(255)
SHGetSpecialFolderPath(GetDesktopWindow(), ret ,ai_folder,false)
return ret