创建快捷方式
2013-10-25 11:55
363 查看
#include "atlconv.h"
bool CreatLinkToStartMenu(char * pszPeFileName)
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
IShellLink *pisl;
hr = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);
if (SUCCEEDED(hr))
{
IPersistFile* pIPF;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//这里是我们要创建快捷方式的原始文件地址
pisl->SetPath(pszPeFileName);
hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
if (SUCCEEDED(hr))
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//这里是我们要创建快捷方式的目标地址
char szStartPath[MAX_PATH] = {0};
SHGetSpecialFolderPath(NULL,szStartPath, CSIDL_STARTUP, 0);
strcat(szStartPath,"\\Windows Message.lnk");
USES_CONVERSION;
LPCOLESTR lpOleStr = A2COLE(szStartPath);
pIPF->Save(lpOleStr, FALSE);
pIPF->Release();
}
pisl->Release();
}
CoUninitialize();
}
return true;
}
bool CreatLinkToStartMenu(char * pszPeFileName)
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
IShellLink *pisl;
hr = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);
if (SUCCEEDED(hr))
{
IPersistFile* pIPF;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//这里是我们要创建快捷方式的原始文件地址
pisl->SetPath(pszPeFileName);
hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
if (SUCCEEDED(hr))
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//这里是我们要创建快捷方式的目标地址
char szStartPath[MAX_PATH] = {0};
SHGetSpecialFolderPath(NULL,szStartPath, CSIDL_STARTUP, 0);
strcat(szStartPath,"\\Windows Message.lnk");
USES_CONVERSION;
LPCOLESTR lpOleStr = A2COLE(szStartPath);
pIPF->Save(lpOleStr, FALSE);
pIPF->Release();
}
pisl->Release();
}
CoUninitialize();
}
return true;
}
相关文章推荐
- Unity3d 记录1
- eclipse启动tomcat无法访问
- oracle忘记sys/system/scott用户的密码怎么办
- 针对前台数据传到后台汉字出现乱码的情况分析及解答
- 内存,我想更懂你~
- 驱动贴
- 发个 IAT HOOK代码
- 编译支持3G网卡的openwrt固件——从内核到应用
- unsigned 赋值负数输出情况 & printf输出格式
- union select
- 匿名块锁等待
- NIO与传统IO的区别 NIO Socket例子 实例
- 自定义表单中多附件上传控件的实现方案
- ios 更改UITableview中Section的字体颜色
- [原创] 服务器端搭建好了数据库,还出了详细的数据库字典!
- Openwrt研习笔记四之工具介绍篇
- WWDC2013_218 内容概要 ( 3 )
- [原创] 策划小伙伴把文档搞定了,show给大家看!
- 排序
- Ioc模式和MEF