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


本文整理自网络,侵删。

 我们在编写程序的时候,经常会需要得到系统中的一些特殊目录,例如:桌面、收藏夹、历史文件、字体等。在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中存储的就是桌面的路径值。简单吧!就是这么简单,但要是你不知道,你就得绕一个大圈子。

相关阅读 >>

Delphi datasnap(midas)三层架构中,常用事件及其触发顺序

Delphi 如何将图片转换成文本

Delphi中如何向某个ip不间断的发送数据

Delphi changefileext 更改文件的后缀扩展名

Delphi win10系统通知 notificationcenter1 基本用法

Delphi base32 的加密和解密

Delphi解决dll注入桌面卡的问题

Delphi 阿拉伯数字转中文汉字数字

Delphi 获取memo的行数与列数

Delphi 格式化输出函数(2): formatdatetime

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...