编程创建快捷方式

 LPCTSTR szPath;    //快捷方式指向的应用程序文件
 LPCTSTR szLink;     //快捷方式存放的位置
 szPath="D://RedVIP5//VIP.exe";   

//获得系统桌面或开始程序菜单位置

 TCHAR szPathd[MAX_PATH];
 //SHGetSpecialFolderPath(NULL,szPathd,CSIDL_DESKTOPDIRECTORY,FALSE);
 SHGetSpecialFolderPath(NULL,szPathd,CSIDL_PROGRAMS,FALSE);


 strcat(szPathd,"//VIP.lnk");    //链接快捷方式路径
 szLink=szPathd;

CoInitialize(NULL);

HRESULT hres;
 IShellLink* psl;
 IPersistFile* ppf;
 WORD wsz[MAX_PATH] ;
 //创建一个IShellLink实例
 hres = CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink,(void**)&psl);
 if(S_OK==hres)
 {
  MessageBox("CoCreateInstance成功");
  //return;
 }
 else
 {
  MessageBox("CoCreateInstance失败");
  //return;
 }
 //设置目标应用程序
 psl->SetPath(szPath);

 psl->SetWorkingDirectory(tmppath);//设置目标程序工作路径
 //设置快捷键(此处设为Shift+Ctrl+'R')
 //psl -> SetHotkey(MAKEWORD('R',HOTKEYF_SHIFT |HOTKEYF_CONTROL));
 //从IShellLink获取其IPersistFile接口
 //用于保存快捷方式的数据文件 (*.lnk)
 hres=psl->QueryInterface(IID_IPersistFile,(void**)&ppf);
 if(S_OK==hres)
 {
  MessageBox("QueryInterface成功");
  //return;
 }
 else
 {
  MessageBox("QueryInterface失败");
  //return;
 }
 // 确保数据文件名为ANSI格式
 int c=MultiByteToWideChar(CP_ACP,0,szLink,-1,wsz,MAX_PATH);
 CString s;
 s.Format("%d",c);
 MessageBox(s);
 //调用IPersist:Save
 //保存快捷方式的数据文件 (*.lnk)
 //hres=ppf->Save(wsz,STGM_READWRITE);
 hres=ppf->Save(wsz,FALSE);
 if(S_OK==hres)
  MessageBox("Save成功");
 else
  MessageBox("Save失败");
 //释放IPersistFile和IShellLink接口
 ppf->Release();
 psl->Release();
 CoUninitialize(); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值