?? 如何取得某些特殊文件夾路徑 (2000年12月14日).txt
字號:
如何取得某些特殊文件夾路徑 (2000年12月14日)
本站更新 分類: 作者:srw 推薦: 閱讀次數:515
(http://www.codesky.net)
--------------------------------------------------------------------------------
如何取得某些特殊文件夾路徑
在Windows 下有很多的特殊含義的文件夾,如桌面,網上鄰居,字體,我的文檔,
程序組,最近文檔,發送到,開始菜單,啟動等,有時可能需要取得這些文件夾
的真正路徑。
一種方法是通過讀注冊表文件,存放在HKEY_CURRENT_USER根下,目錄為:
Software\MicroSoft\Windows\CurrentVersion\Explorer
可看到在shell folder段中存放著上述文件夾所對應的實際物理目錄,至于如何
讀注冊表的操作不再給出,請自行解決。
另一種方法是調用shell函數可以得到相應的目錄,但是不是所有在shell folder
目錄下的文件夾都可以獲得,請注意。
function GetSpecialFolderDir(const folderid:integer):string;
var
pidl:pItemIDList;
buffer:array [ 0..255 ] of char ;
begin
//取指定的文件夾項目表
SHGetSpecialFolderLocation( application.Handle , folderid, pidl);
SHGetPathFromIDList(pidl, buffer); //轉換成文件系統的路徑
result:=strpas(buffer);
end;
其中:folderid可以取下面的值:但是請注意,有些是虛的文件夾,不是文件系統
的一部分,所以用SHGetPathFromIDList是取不出路徑的,但是在此也列出了。打'*'
號的為不是真正的文件系統,應該用作它用。
CSIDL_BITBUCKET * 回收站
CSIDL_CONTROLS * 控制面板
CSIDL_DESKTOP * 桌面
CSIDL_DESKTOPDIRECTORY 桌面目錄 //如C:\WINDOWS\Desktop
CSIDL_DRIVES * 我的電腦
CSIDL_FONTS 字體 //如C:\WINDOWS\FONTS
CSIDL_NETHOOD 網上鄰居目錄 //如C:\WINDOWS\NetHood
CSIDL_NETWORK * 網上鄰居
CSIDL_PERSONAL 我的文檔 //如C:\My Documents
CSIDL_PRINTERS * 打印機
CSIDL_PROGRAMS 程序組 //如C:\WINDOWS\Start Menu\Programs
CSIDL_RECENT 最近文檔 //如C:\WINDOWS\Recent
CSIDL_SENDTO 發送到 //如C:\WINDOWS\SentTo
CSIDL_STARTMENU 開始菜單 //如C:\WINDOWS\Start Menu
CSIDL_STARTUP 啟動 //如C:\WINDOWS\啟動
CSIDL_TEMPLATES 模版 //如C:\WINDOWS\ShellNew
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -