ITPub博客

首页 > 应用开发 > IT综合 > 获取快捷方式的目标和参数 (转)

获取快捷方式的目标和参数 (转)

原创 IT综合 作者:worldblog 时间:2007-12-10 08:54:14 0 删除 编辑
获取快捷方式的目标和参数 (转)[@more@]获取快捷方式(.lnk)的目标和参数 我看了Michael Taupitz关于建立快捷方式的方法,我认为有很多时候当我 们在命令行<a href="tag-270-1.html">模式</a>中偶然发现一个快捷方式的时候,我们不知道这个.lnk<a href="tag-418-1.html">文件</a>指 向什么地方。 我写了一个<a href="tag-266-1.html">函数</a>,它以CString的形式返回了.lnk文件的目标和参数。 CString GetShortcutTarget(const CString LinkFileName) { HRESULT hres; CString Link, Temp = LinkFileName; Temp.MakeLower(); if (Temp.Find(".lnk")==-1) //Check if the name ends with .lnk Link = LinkFileName + ".lnk"; //if not, append it else Link = LinkFileName; CString Info; Info.Empty(); I<a href="tag-155-1.html">shell</a>Link* psl; //Create the ShellLink <a href="tag-252-1.html">object</a> hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*) &psl); if (SUCCEEDED(hres)) { IPersistFile* ppf; //Bind the ShellLink object to the Persistent File hres = psl->QueryInterface( IID_IPersistFile, (LPVOID *) &ppf); if (SUCCEEDED(hres)) { <a href="tag-127-1.html">word</a> wsz[MAX_PATH]; //Get a UNICODE w<a href="tag-351-1.html">ide</a> string wsz from the Link path MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, Link, -1, wsz, MAX_PATH); //Read the link into the persistent file hres = ppf->Load(wsz, 0); if (SUCCEEDED(hres)) { //Read the target information from the link object //UNC paths are supported (SLGP_UNCPRIORITY) psl->GetPath(Temp.GetBuffer(1024), 1024, NULL, SLGP_UNCPRIORITY); Temp.ReleaseBuffer(); Info = Temp; //Read the arguments from the link object psl->GetArguments(Temp.GetBuffer(1024), 1024); Temp.ReleaseBuffer(); Info += " " + Temp; } } } psl->Release(); //Return the Target and the Argument as a CString return Info; }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-990730/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2411232