不通过注册表如何得到一些系统文件夹的位置?(如桌面、程序组、快速启动组、我的方档等)

iannie 2002-05-20 04:01:20
我想用API应该是可以实现的,可是无从下手
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iannie 2002-05-20
  • 打赏
  • 举报
回复
谢谢火鸟,就是我所要的!
火鸟李国平 2002-05-20
  • 打赏
  • 举报
回复
对不起,上边截错了,不是itmp:myaddress而是itmp:integer;myaddress:string
BlueTrees 2002-05-20
  • 打赏
  • 举报
回复
脱裤子放屁,那些个函数一样是要读注册表的
BlueTrees 2002-05-20
  • 打赏
  • 举报
回复
脱裤子放屁,这个函数一样是从注册表读的
火鸟李国平 2002-05-20
  • 打赏
  • 举报
回复
注册表的话是在这儿:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders(个人的)和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders(公共的)
火鸟李国平 2002-05-20
  • 打赏
  • 举报
回复
呵..又要得分了,要获得系统的一些文件夹可在uses之后声明此函数:
Function SHGetSpecialFolderPath(hwndOwner:Integer;pPath:Pchar;nFolder:Integer;bCreat:Boolean):integer;stdcall;external 'Shell32.dll' name 'SHGetSpecialFolderPathA';
调用:
var ppath:Pchar;itmp:myaddress
begin
ppath:=StrAlloc(MAX_PATH);
SHGetSpecialFolderPath(0,ppath,itmp,false);
//ppath为特定文件夹的位置,可在此读取
StrDispose(ppath);
{itmp为想要的特定文件夹位置信息含义如下(TMD,当年我可是一个个Try出来的):
0桌面;2程序组;5我的文档;6收藏夹;7启动组;8文档记录;9发送到;11开始菜单;19网络连接;27打印机连接;20字体;21模板;32Internet临时文件;33Cookies文件;34历史;26快速启动组;38程序文件夹;39我的图片;13我的音乐;14我的视频;28本地设置;48管理工具;40用户配置文件;22公共启动菜单;23公共程序组;24公共启动组;25公共桌面;35公共快速启动;47公共管理工具;46公共文档;31公共收藏夹;45公共模板;43公共文件夹;这是在2K下做的,98下部分会无效,XP下新出的玩意没试过,抛砖引玉吧!
}
另外 getWindowsDirectory、GetTempPath、GetSystemDirectory三个API可直接得到windows、Temp、和System的文件夹位置

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧