如我想获取网上邻居,控制面板这两个的系统文件夹的路径,如何获取呢?谢谢
  
  TCHAR filePath[MAX_PATH];
  ::SHGetSpecialFolderPath(NULL, filePath, CSIDL_NETWORK, false);
  上面这函数怎么不能获取网上邻居的路径呢???

解决方案 »

  1.   


    TCHAR filePath[MAX_PATH]; 
      
    LPITEMIDLIST  ppidl; ::SHGetSpecialFolderLocation (this->GetSafeHwnd(), CSIDL_NETWORK,&ppidl); ::SHGetPathFromIDList(ppidl,filePath);试试这个
      

  2.   

    我试了下,确实得不到CSIDL_NETWORK的路径,搜索了一下,原来是这样:
    有些是虚的文件夹,不是文件系统
      的一部分,所以用SHGetPathFromIDList是取不出路径的,但是在此也列出了。打'*'
      号的为不是真正的文件系统,应该用作它用。
      CSIDL_BITBUCKET * 回收站
      CSIDL_CONTROLS * 控制面板
      CSIDL_DESKTOP * 桌面
      CSIDL_DESKTOPDIRECTORY 桌面目录 //如C:\WINDOWS\Desktop
      CSIDL_DRIVES * 我的电脑
      CSIDL_FONTS 字体 //如C:\WINDOWS\FONTS
      CSIDL_NETHOOD 网上邻居目录 //如C:\WINDOWS\NetHood
      CSIDL_NETWORK * 网上邻居
      CSIDL_PERSONAL 我的文档 //如C:\My Documents
      CSIDL_PRINTERS * 打印机
      CSIDL_PROGRAMS 程序组 //如C:\WINDOWS\Start Menu\Programs
      CSIDL_RECENT 最近文档 //如C:\WINDOWS\Recent
      CSIDL_SENDTO 发送到 //如C:\WINDOWS\SentTo
      CSIDL_STARTMENU 开始菜单 //如C:\WINDOWS\Start Menu
      CSIDL_STARTUP 启动 //如C:\WINDOWS\启动
      CSIDL_TEMPLATES 模版 //如C:\WINDOWS\ShellNew
    =================
    所以取不到
      

  3.   

    可否使用其CLSID? 
    ::{21EC2020-3AEA-1069-A2DD-08002B30309D} (打开控制面板)