判断windows的Desktop及其它目录

转载 2006年05月28日 21:20:00
     使用API函数SHGetSpecialFolder。shlobj.h里有SHGetSpecialFolder的原型声明。这个函数可以帮我们找到windows的Desktop目录、启动目录、我的文档目录等。

       SHGetSpecialFolder需要三个参数。 第一个参数是HWND,它指定了"所有者窗口":在调用这个函数时可能出现的对话框或消息框。第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是:

  • CSIDL_BITBUCKET 回收站
  • CSIDL_CONTROLS 控制面板
  • CSIDL_DESKTOP Windows 桌面desktop
  • CSIDL_DESKTOPDIRECTORY desktop的目录
  • CSIDL_DRIVES 我的电脑
  • CSIDL_FONTS 字体目录
  • CSIDL_NETHOOD 网上邻居
  • CSIDL_NETWORK 网上邻居virtual folder
  • CSIDL_PERSONAL 我的文档
  • CSIDL_PRINTERS 打印机
  • CSIDL_PROGRAMS 程序组
  • CSIDL_RECENT 大多数最近打开的文档列一
  • CSIDL_SENDTO “发送到”菜单项
  • CSIDL_STARTMENU 任务条启动菜单项
  • CSIDL_STARTUP 启动目录
  • CSIDL_TEMPLATES 临时文档

     最后一个参数是pidl地址。SHGetSpecialFolderLocation把地址写到pidl。

     下面的代码演示了怎样使用SHGetSpecialFolderLocation:

//----------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    LPITEMIDLIST  pidl;
    LPMALLOC      pShellMalloc;
    char          szDir[MAX_PATH];
 
    if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
    {
        if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,
                                                CSIDL_DESKTOPDIRECTORY,
                                                &pidl)))
        {
            // 如果成功返回true
            if(SHGetPathFromIDList(pidl, szDir))
            {
                Label1->Caption = szDir;
            }
 
            pShellMalloc->Free(pidl);
        }
 
        pShellMalloc->Release();
    }
}
//----------------------------------------------------------------------

注意: 有些目录是空的。有些特定的目录在这个文件系统上并没有一个相应的目录。

相关文章推荐

安装 GitHub desktop for windows 失败

How to fix this error while installing github on windows 7/8/8.1 64bit???? 前言: 给win8.1安装Gi...

vlc-2.2.4 交叉编译 UbuntuX64_1604_Desktop 编译windows版本vlc

vlc 交叉编译 vlc-2.2.4

解决 Boot Camp 虚拟机升级到 Windows 10 后 Parallels Desktop 不能识别的问题

最近几天 Win10 正式版开始推送了,对于喜欢折腾的博主,在第一时间就把 Mac 中 Boot Camp 从 Win7 升级到 Win10,初步体验还不错,等博主用过一段时间之后,再来给大家分享使用...

LibGDX_1.2: Desktop环境搭建: 包括 Windows,MAC OS X,Linux

本文地址: http://blog.csdn.net/xietansheng/article/details/50186001 LibGDX基础教程(总目录) 1. 前提 安装 JDK(JDK...

Windows8.1硬盘安装ubuntukylin-15.10-desktop-amd64双系统参考

硬盘安装,无需光盘、U盘;Win8.1为主,Ubuntu14.04为辅,可将Windows或Ubuntu设置为开机默认启动项;在Ubuntu下可查看、操作Windows系统下的文件;适用于安装和14....

如何在windows下制作ubuntu12.04desktop的U盘安装盘

1 准备工作:     首先下载Ubuntu-12.04-Desktop.ISO文件和U盘启动盘刻录工具--Universal-USB-Installer-1.9.0.6.exe,下载地址为   ...

虚拟机Parallels Desktop 10 for mac安装Windows 7系统图文教程

转:http://www.52mac.com/soft/6260-1-1.html 准备 Mac平台下知名的虚拟机软件有VMware Fusion和 Parallels Desktop,本...

How To Remote Desktop from windows to Linux

在windows 10 连接 CentOS 7上成功stepHere in this guide we are going to install Linux Remote Desktop Clien...

Windows Server 2012 Web方式修改域用户密码-通过Remote Desktop Web实现

Windows Server 2012 Web方式修改域用户密码 Windows Server 2012 R2 Web方式修改域用户密码 Windows Server 2012通过Remote Des...

Windows下ArcGIS Desktop10安装过程

安装环境:Windows Server 2008。ArcGIS Desktop10需要 .NET Framwork 3.5 SP1 的支持,所以系统中必须安装 .NET Framwork 3.5 SP...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)