如何创建快捷方式并添加到开始菜单、桌面、任务栏....

创建快捷方式的方法(.lnk)

::CoInitialize(NULL);


IShellLink* pIShellLink;
HRESULT hRes = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pIShellLink);
if (!SUCCEEDED(hRes)) {
return false;
}


pIShellLink->SetPath(L"x:\\xx\\xx.exe");
pIShellLink->SetDescription(L"这是一个测试的桌面快捷方式");
pIShellLink->SetHotkey(MAKEWORD('R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));
IPersistFile* pIPersistFile;
hRes = pIShellLink->QueryInterface(IID_IPersistFile, (void**)&pIPersistFile);
if (!SUCCEEDED(hRes)) {
return false;
}


hRes = pIPersistFile->Save(savePath.c_str(), TRUE);
if (!SUCCEEDED(hRes)) {
return false;
}


pIPersistFile->Release();
pIShellLink->Release();


::CoUninitialize();

 

快捷方式(.url)

if (m_sIconFile.length() == 0)
{
return false;
}


IniFile iniFs;
iniFs.setFilename(m_sLnkFile.c_str());
std::string curUrl = iniFs.getStr("InternetShortcut", "URL");


if (curUrl == m_url)
{//一样,则不用重写
return true;
}


std::string str;


str += "[{000214A0-0000-0000-C000-000000000046}]\r\n";
str += "Prop3=19,2\r\n";
str += "[InternetShortcut]\r\n";
str += "URL=";
str += m_url;
str += "\r\n";
str += "IDList=\r\n";
str += "IconFile=";
str += m_sIconFile;
str += "\r\n";
str += "IconIndex=0\r\n";


// 设置文件为正常方式
DWORD dwAttribute = FILE_ATTRIBUTE_NORMAL;
SetFileAttributesA(m_sLnkFile.c_str() , dwAttribute);


FILE* fp = fopen(m_sLnkFile.c_str(), "wb");
fwrite(str.c_str(), str.length(), 1, fp);
fclose(fp);

 

添加到开始菜单、桌面只需要将快捷方式存储到相应位置就行

 

任务栏则需要调用ShellExecute(NULL, L"taskbarpin", lnkPath, NULL, NULL, 0);

 

艺文笔记:https://www.xuwenyan.com/archives/89

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艺文笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值