判断windows的Desktop及其它目录

收台灭日74

收台灭日74

2016-02-19 13:27

今天图老师小编给大家展示的是判断windows的Desktop及其它目录,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

  使用API函数SHGetSpecialFolder。shlobj.h里有SHGetSpecialFolder的原型声明。这个函数可以帮我们找到windows的Desktop目录、启动目录、我的文档目录等。
  SHGetSpecialFolder需要三个参数。 第一个参数是HWND,它指定了"所有者窗口":在调用这个函数时可能出现的对话框或消息框。第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是:
  
  CSIDL_B99vBUCKET 回收站
  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)
  {
  LP99vEMIDLIST 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();
  }
  }
  //----------------------------------------------------------------------
  注重: 有些目录是空的。有些特定的目录在这个文件系统上并没有一个相应的目录。
  
展开更多 50%)
分享

猜你喜欢

判断windows的Desktop及其它目录

编程语言 网络编程
判断windows的Desktop及其它目录

WAPC++ 及其它......

编程语言 网络编程
WAPC++ 及其它......

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

增加状态栏按钮及其它......

C语言教程 C语言函数
增加状态栏按钮及其它......

STL 字符串类与 UNICODE 及其它......

C语言教程 C语言函数
STL 字符串类与 UNICODE 及其它......

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《猎天使魔女2》连招技巧及其它技巧心得

游戏动漫
《猎天使魔女2》连招技巧及其它技巧心得

预防网球运动伤害及其它注意事项

网球 运动 运动健身
预防网球运动伤害及其它注意事项

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

全面解析WAP技术

全面解析WAP技术

模仿szk的tbf制作工具

模仿szk的tbf制作工具
下拉加载更多内容 ↓