RSS
热门关键字:  计算机有关资料  33252  mkv  word  MKV_NT
当前位置 : 主页>vc编程>平台/系统>列表

使用Shell API读取特殊路径设置

来源: 作者: 时间:2006-11-30 点击:
    最近编码,在取用户文档数据目录时,遇到问题:

    我的做法是:<系统盘> + "\Documents and Settings\" + <用户名> + "\Application Data\"

    为啥这么麻烦,因为当时我没有找到合适的API,有什么问题呢?

    问题出在用户名,假如我的用户名是Stone,但文档数据目录却有可能存在两种,一是:Stone, 还有可能是 Stone.域名。但实际上Stone都是域用户。出现此情况的原因不明。而取用户名的函数用的是 GetUserName(也试过其它),域名当然也可以取出,但何时带域名,何时不带域名的规律不得而知。 

    所以,还是只能去查到API,其实Windows Shell API有此类函数,只不过使用比较特殊。

    代码如下: 

    LPITEMIDLIST pidl;
    SHGetSpecialFolderLocation(NULL,CSIDL_APPDATA,&pidl);
    if ( pidl ) {
       TCHAR szPathName[1024];
       SHGetPathFromIDList(pidl,szPathName);
       LPMALLOC pMalloc; 
       SHGetMalloc( &pMalloc );
       pMalloc->Free(pidl);
    } 

    更换其中参数CSIDL_APPDATA,可以得到很多的系统设置值。用此方法,将前文所讲的判定给了API,不再有问题。

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册