IShellLink获取快捷方式的真正地址(创建WIN32后台程序)

来源:互联网 发布:linux nginx 全局变量 编辑:程序博客网 时间:2024/05/20 21:57
<img src="http://img.blog.csdn.net/20140716170029303?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYm9qaWU1NzQ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
#include "stdafx.h"#include <shobjidl.h>#include <shlguid.h>#define  SAFE_RELEASE(p) if(p) p->Release();int _tmain(int argc, _TCHAR* argv[]){CoInitialize(NULL);wchar_t real_path[512];IShellLink*   psl = NULL;HRESULT       hr ;hr = CoCreateInstance(  CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,//建在同一进程中运行的组件IID_IShellLink,(void **)&psl );  // 初始化comif( SUCCEEDED(hr) ) {IPersistFile*   ppf = NULL;hr = psl-> QueryInterface(IID_IPersistFile,   (void**)&ppf);if( SUCCEEDED(hr) ){WIN32_FIND_DATA   wfd;hr = ppf->Load(L"C:/Users/Administrator/Desktop/汇编指令.lnk",STGM_READ);//文件名字修改XF为你的快捷方式名字if( SUCCEEDED(hr) ){psl->GetPath(real_path,MAX_PATH,&wfd,SLGP_SHORTPATH);printf("找到文件\n");MessageBoxW(NULL,real_path,real_path,0);}elseprintf("不存在这个文件");}}SAFE_RELEASE( psl );//释放pslCoUninitialize(); //卸载comwhile(1);return 0;}
 

0 0
原创粉丝点击