VC++创建快捷方式文件

5 篇文章 0 订阅

使用com接口可以创建一个应用程序的快捷方式文件在任意目录。
#include <Shlobj.h>
#include <objbase.h>
void CreateLnkFile(char *strAppFile,char *strDstFile)
{
 ::CoInitialize(NULL);
 
 IShellLink   *psl;
 HRESULT   hres;
 WIN32_FIND_DATA   wfd;
 char   szSetPath[MAX_PATH]={0};
 
 //   Get   pointer   to   the   IShellLink   interface.
 hres   =   CoCreateInstance(CLSID_ShellLink,   NULL,   CLSCTX_INPROC_SERVER,
  IID_IShellLink,   (LPVOID   *)&psl);
 if (SUCCEEDED(hres))
 {
  //   Get   pointer   to   the   IPersistFile   interface.
  //设置文件路径
  //GetModuleFileName(NULL,szSetPath,sizeof(szSetPath));
  strcpy(szSetPath,strAppFile);
  psl->SetPath(szSetPath);

 //设置文件绝对路径
  (strrchr(szSetPath,'\\'))[1] = 0;
  psl->SetRelativePath(szSetPath,0);
  psl->SetWorkingDirectory(szSetPath);
 
  //设置参数
  //psl->SetArguments("www.sohu.com");
 
  IPersistFile   *ppf;
  hres   =   psl->QueryInterface(IID_IPersistFile,   (LPVOID   *)&ppf);
 
  if(SUCCEEDED(hres))
  {
   WORD   wsz[MAX_PATH];
   //保存为目标文件
   MultiByteToWideChar(CP_ACP,   0,   strDstFile,   -1,   wsz,   MAX_PATH);
   hres=ppf->Save(wsz,   STGM_READWRITE);
   ppf->Release();
  }
  psl->Release();
 }
 ::CoUninitialize();
}

使用:
Set.CreateLnkFile("D:\\testapp.exe","C:\\Documents and Settings\\Administrator\\桌面\\testapp.lnk");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值