请教:如何枚举桌面快捷方式!

宅叔叔 2012-05-15 01:09:24
请教如何把桌面上所有快捷方式枚举出来,比如 我的电脑 回收站 等等
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
宅叔叔 2012-05-16
  • 打赏
  • 举报
回复
感谢楼上各位的帮助,正在参考各位的建议。
稍后结贴!
宅叔叔 2012-05-16
  • 打赏
  • 举报
回复
采用以下代码已获得桌面快捷方式。但不完全。
在Windows 7 上获得了所有在公共用户桌面文件夹下的所有快捷方式。
但未包含我的电脑和回收站。而另外一个快捷方式由于是创建在 单个用户文件夹下 同样未能获取
wchar_t path[128];
wchar_t file_path[128];
memset(path,0,128*sizeof(wchar_t));
memset(file_path,0,128*sizeof(wchar_t));
LPITEMIDLIST pidl;
SHGetSpecialFolderLocation(NULL,CSIDL_COMMON_DESKTOPDIRECTORY,&pidl);
SHGetPathFromIDList(pidl,path);
wcscat(file_path,path);
wcscat(file_path,L"\\");
wcscat(path,L"\\*.*");
wprintf(path,"%s");
getchar();
WIN32_FIND_DATA FD;
memset(&FD,0,sizeof(LPWIN32_FIND_DATA));
HANDLE file = FindFirstFile(path,&FD);
wprintf (L"The file found is %s", FD.cFileName);
cout<<endl;
while(FindNextFile(file,&FD))
{
//wprintf (L"The file found is %s", FD.cFileName);
cout<<endl;
SHFILEINFO FILE_INFO;
wchar_t true_path[256];
memset(true_path,0,256*sizeof(wchar_t));
wcscat(true_path,file_path);
wcscat(true_path,FD.cFileName);
wprintf (L"The file true_path %s", true_path);
SHGetFileInfo(true_path,0,&FILE_INFO,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME | SHGFI_ICON);
//wprintf (L"The file DISPLAY NAME %s", FILE_INFO.szDisplayName);
cout<<endl;
if(FILE_INFO.hIcon)
{
cout<<"There is an Icon"<<endl;
ICONINFO ICON_INFO;
GetIconInfo(FILE_INFO.hIcon,&ICON_INFO);
cout<<ICON_INFO.xHotspot<<"*"<<ICON_INFO.yHotspot<<endl;
}
cout<<endl;
}
mabaoyes 2012-05-15
  • 打赏
  • 举报
回复
枚举目录下文件名;
取文件后缀名 .lnk 是快捷方式
向立天 2012-05-15
  • 打赏
  • 举报
回复
通过shell编程
看看这个
http://zhidao.baidu.com/question/11295754.html
oyljerry 2012-05-15
  • 打赏
  • 举报
回复
IShellLink()
oldmtn 2012-05-15
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20070113/01/c8cf0bc9-3eff-465f-88be-821a10efc8af.html

http://tieba.baidu.com/p/1096358988?pid=12528862355&cid=0

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧