【原创】如何获取系统目录和文件信息
答案:2 悬赏:0 手机版
解决时间 2021-03-23 06:07
- 提问者网友:记得曾经
- 2021-03-23 00:58
【原创】如何获取系统目录和文件信息
最佳答案
- 五星知识达人网友:鱼芗
- 2021-03-23 01:19
新建一个单文档程序GetExtractIcon修改CGetExtractIconView类的OnDraw函数如下void CGetExtractIconView::OnDraw(CDC* pDC){ CGetExtractIconDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);// TODO: add draw code for native data herechar szSysDir[MAX_PATH+1];char szWinDir[MAX_PATH+1];char szcurDir[MAX_PATH+1];char szTmpPath[MAX_PATH+1];char szPathName[MAX_PATH+1];//System目录 GetSystemDirectory(szSysDir,MAX_PATH);//Windows目录 GetWindowsDirectory(szWinDir,MAX_PATH);//当前目录 GetCurrentDirectory(MAX_PATH,szcurDir);//临时目录 GetTempPath(MAX_PATH,szTmpPath);//程序完整路径 GetModuleFileName(NULL,szPathName,MAX_PATH);?? pDC->TextOut(10,100,CString("SystemDirectory - ") + CString(szSysDir)); pDC->TextOut(10,120,CString("WindowsDirectory - ") + CString(szWinDir)); pDC->TextOut(10,140,CString("CurrentDirectory - ") + CString(szcurDir)); pDC->TextOut(10,160,CString("TempPath - ") + CString(szTmpPath)); pDC->TextOut(10,180,CString("PathName - ") + CString(szPathName));??//记事本的路径 CString strFileName=szSysDir + CString("\\notepad.exe"); SHFILEINFO stFileInfo;//得到文件信息if(::SHGetFileInfo(strFileName,0,&stFileInfo,sizeof(stFileInfo), SHGFI_ICON | SHGFI_DISPLAYNAME | SHGFI_TYPENAME)) { pDC->DrawIcon(10,10,stFileInfo.hIcon); pDC->TextOut(50,10,CString(stFileInfo.szDisplayName)); pDC->TextOut(50,30,CString(stFileInfo.szTypeName)); }//使用ExtractIcon得到explorer的图标 HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),"explorer.exe",0);if(hIcon && hIcon!=(HICON)-1) pDC->DrawIcon(10,50,hIcon);}SHFILEINFO结构体的原型:typedef struct _SHFILEINFO{ HICON hIcon; //图标的句柄int iIcon; //图标的索引 DWORD dwAttributes; //文件的属性 TCHAR szDisplayName[MAX_PATH]; //包含文件的名称 TCHAR szTypeName[80]; //文件类型} SHFILEINFO; SHGetFileInfo函数原型:DWORD_PTR SHGetFileInfo( LPCTSTR pszPath, //包含路径和文件名 DWORD dwFileAttributes, //文件的属性,如果uflags不包括//SHGFI_USEFILEATTRIBUTES标志, 这个参数将被忽略 SHFILEINFO *psfi, //SHFILEINFO类型的指针,用来接收文件信息 UINT cbFileInfo, //SHFILEINFO类型的大小 UINT uFlags //这个标准指定文件信息检索);uFlags标志可以是以下值的组合:SHGFI_ATTR_SPECIFIEDSHGFI_ATTRIBUTESSHGFI_DISPLAYNAMESHGFI_EXETYPE SHGFI_ICON SHGFI_ICONLOCATION SHGFI_LARGEICON SHGFI_LINKOVERLAY SHGFI_OPENICON SHGFI_PIDL SHGFI_SELECTED SHGFI_SHELLICONSIZE SHGFI_SMALLICON SHGFI_SYSICONINDEX SHGFI_TYPENAME SHGFI_USEFILEATTRIBUTES
全部回答
- 1楼网友:行路难
- 2021-03-23 01:26
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯