如何得到桌面文件所在的路径?包括98,2000 如何得到桌面文件所在的路径?包括98,2000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var P: PChar; S: String;begin GetMem(P,MAX_PATH); GetWindowsDirectory(P,MAX_PATH); S := P; FreeMem(P); S := S + '\Desktop'; ShowMessage(S);end;—————————————————————————————————宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。————————————————————————————————— lxpbuaa(桂枝香在故国晚秋):你的只能得到98的吧?!有没有其他的方式?不同的系统,桌面文件的存放的路径不一样的吧!NT和2000,98,xp 方法一:通过访问注册表uses registry;procedure Tsysdirfrm.FormShow(Sender: TObject);var reg:Tregistry;beginreg:=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和SHGetPathFromIDListuses shlobj;procedure TForm1.Button1Click(Sender: TObject);var pidl: PItemIDList;FavPath: array[0..MAX_PATH] of char;temp:array [1..17] of integer; i:byte;begintemp[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 dobeginSHGetSpecialFolderLocation(Handle, temp[i], pidl);SHGetPathFromIDList(pidl, favpath);listbox1.Items.Add(StrPas(FavPath));end;end; 有一个专门的API可以获得这些特殊目录 Delphi 调用SQLite 的OBJ 想做一个中小超市的管理软件后问题多多 请教一个报表显示的问题 线程中 往数据库中插入记录的奇怪问题????? 宝宝7月就要出生了,给宝宝取个名字 请问大家都是去什么网站找工作 菜鸟问题``` Delphi中如何表示二进制数? z_x_b,送你分~~ 关于WINSOCKET的编程问题?? 怎么办呀?我把cb++5里的quickreport升到3.6版本后,问题出现了。。。。。 遇到了一个大问题,请高手们指点一二
P: PChar;
S: String;
begin
GetMem(P,MAX_PATH);
GetWindowsDirectory(P,MAX_PATH);
S := P;
FreeMem(P);
S := S + '\Desktop';
ShowMessage(S);
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
不同的系统,桌面文件的存放的路径不一样的吧!NT和2000,98,xp
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;
begintemp[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;