登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

如何取得系统中的桌面的路径  

2014-09-22 20:32:56|  分类: delphixe7 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我们在编写程序的时候,经常会需要得到系统中的一些特殊目录,例如:桌面、收藏夹、历史文件、字体等。在windows98、windows NT、windows 2000中他们的位置是不一样的,尤其在windows2000和wodows NT中,他们的位置随着登陆用户的不同而改变。那么我们要如何取得这些特殊目录的具体位置呢?

       当然是利用Api函数,现在我介绍两个Api函数,利用他们就可以轻松简单的获取这些特殊系统目录。

      Function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer;
 var ppidl: PItemIDList): HResult; stdcall;

      Function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar):                BOOL;stdcall;

      其中由nFolder参数指定的就是各个特殊系统目录:

      CSIDL_DESKTOP:毫无疑问这就是桌面;

      CSIDL_DRIVERS:我的电脑;

      CSIDL_FAVORITES:收藏夹;

      CSIDL_STARTUP:开始菜单;

      CSIDL_NETWORK:网上邻居;

       还有很多,你可以查阅一下Delphi的Win32 Api函数的帮助文件,不过在帮助文件下的这些参数也不是很全,像收藏夹帮助文件里面就没有,你可以查阅一下它的头文件:shlobj.pas。

      下面我就利用这两个函数取得桌面的路径(在win98和win2000下都可以使用):

       uses shlobj;

       var
         pitem:PITEMIDLIST;
         s:string;
       
begin
          
shGetSpecialFolderLocation(handle,CSIDL_DESKTOP,pitem);
         setlength(s,100);
          shGetPathFromIDList(pitem,pchar(s));
       end;

        在字符串s中存储的就是桌面的路径值。简单吧!就是这么简单,但要是你不知道,你就得绕一个大圈子。

  评论这张
 
阅读(478)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018