CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何得到桌面文件所在的路径?包括98,2000

楼主sypxl()2002-11-21 15:29:30 在 Delphi / VCL组件开发及应用 提问

如何得到桌面文件所在的路径?包括98,2000 问题点数:30、回复次数:4Top

1 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-11-21 21:06:41 得分 0

var  
      P:   PChar;  
      S:   String;  
  begin  
      GetMem(P,MAX_PATH);  
      GetWindowsDirectory(P,MAX_PATH);  
      S   :=   P;  
      FreeMem(P);  
      S   :=   S   +   '\Desktop';  
      ShowMessage(S);  
  end;  
   
  —————————————————————————————————  
  宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。  
  —————————————————————————————————Top

2 楼sypxl()回复于 2002-11-22 08:48:06 得分 0

lxpbuaa(桂枝香在故国晚秋):你的只能得到98的吧?!有没有其他的方式?  
  不同的系统,桌面文件的存放的路径不一样的吧!NT和2000,98,xpTop

3 楼bluebilly(蓝色天使)回复于 2002-11-22 09:59:16 得分 30

方法一:通过访问注册表  
  uses   registry;  
  procedure   Tsysdirfrm.FormShow(Sender:   TObject);  
  var   reg:Tregistry;  
  begin  
  reg:=Tregistry.create;  
  reg.RootKey:=HKEY_USERS;  
  reg.OpenKey('\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell   Folders',false);  
  listbox1.items.add(reg.readstring('Desktop'))   ;//桌面目录  
  listbox1.items.add(reg.readstring('Fonts'));//字体目录  
  listbox1.items.add(reg.readstring('NetHood'))   ;//网上邻居    
  listbox1.items.add(reg.readstring('Personal'));//我的文档目录  
  listbox1.items.add(reg.readstring('Programs'));//开始菜单程序目录  
  listbox1.items.add(reg.readstring('Recent'))   ;//存放用户最近访问文件快捷方式的目录  
  listbox1.items.add(reg.readstring('SendTo'));//发送到目录  
  listbox1.items.add(reg.readstring('Start   Menu'));//开始菜单目录  
  listbox1.items.add(reg.readstring('Startup'));//开始菜单启动项目录  
  listbox1.items.add(reg.readstring('Favorites'))   ;//收藏夹目录  
  listbox1.items.add(reg.readstring('History'));//网页历史目录  
  listbox1.items.add(reg.readstring('Cookies'));//cookies目录  
  listbox1.items.add(reg.readstring('Cache'))   ;//缓存目录  
  listbox1.items.add(reg.readstring('AppData'));//应用程序数据目录  
  listbox1.items.add(reg.readstring('PrintHood'))   ;//打印目录  
  reg.CloseKey   ;  
  reg.free;  
  end;  
   
  方法二:使用API函数SHGetSpecialFolderLocation和SHGetPathFromIDList  
  uses   shlobj;  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var   pidl:   PItemIDList;  
  FavPath:   array[0..MAX_PATH]   of   char;  
  temp:array   [1..17]   of   integer;   i:byte;  
  begin  
   
  temp[1]:=CSIDL_DESKTOP;   //桌面  
  temp[2]:=CSIDL_DESKTOPDIRECTORY   ;   //桌面目录  
  temp[3]:=CSIDL_FONTS   ;   //字体目录  
  temp[4]:=CSIDL_NETHOOD   ;   //网络邻居  
  temp[5]:=CSIDL_PERSONAL   ;   //我的文档目录  
  temp[6]:=CSIDL_PROGRAMS   ;   //开始菜单程序目录  
  temp[7]:=CSIDL_RECENT   ;   //存放用户最近访问文件快捷方式的目录  
  temp[8]:=CSIDL_SENDTO   ;   //"发送到"目录  
  temp[9]:=CSIDL_STARTMENU   ;   //开始菜单目录  
  temp[10]:=CSIDL_STARTUP   ;   //开始菜单启动项目录  
  temp[11]:=CSIDL_FAVORITES   ;   //收藏夹目录  
  for   i:=1   to   17   do  
  begin  
  SHGetSpecialFolderLocation(Handle,   temp[i],   pidl);  
  SHGetPathFromIDList(pidl,   favpath);  
  listbox1.Items.Add(StrPas(FavPath));  
  end;  
  end;Top

4 楼Linux2001(闭关开发中)回复于 2002-11-22 10:01:43 得分 0

有一个专门的API可以获得这些特殊目录Top

相关问题

  • 如何得到桌面文件所在的路径?包括98,2000
  • 已知文件所在的路径,如何删除该文件?
  • 如何得到当前文件所在的路径(64分)
  • 怎样获得可执行文件所在的当前路径
  • 如何获取XML文件所在路径?
  • 有没有返回文件夹所在路径的方法??
  • ShellExecute打开程序所在路径下htm文件,没反应~:-[
  • 如何在VBA中获取宏文件所在的路径????
  • 求助!怎样根据文件名字得到文件所在的路径??急!!!
  • 如何获得当前桌面的壁纸文件名和路径?

关键词

  • 桌面
  • 文件
  • readstring
  • 目录listbox1
  • 路径
  • reg
  • 得到
  • items
  • 开始菜单
  • add

得分解答快速导航

  • 帖主:sypxl
  • bluebilly

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo