void MakeShortCut()
{
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("E:\\test\\xxx.exe");
hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
if (SUCCEEDED(hr))
{
//转换成unicode
char path[512] = { 0 };
SHGetSpecialFolderPath(0, path, CSIDL_DESKTOPDIRECTORY, 0);
std::string convertStr;
convertStr += path;
convertStr += "\\";
convertStr += "xxxx.lnk";
int lengthOfWcs1 = MultiByteToWideChar(CP_ACP, 0, convertStr.c_str(), -1, NULL, 0);
wchar_t* wcs1 = new wchar_t[lengthOfWcs1 + 1];
MultiByteToWideChar(CP_ACP, 0, convertStr.c_str(), -1, wcs1, lengthOfWcs1);
//这里是我们要创建快捷方式的目标地址
pIPF->Save(wcs1, FALSE);
pIPF->Release();
}
pisl->Release();
}
CoUninitialize();
}
}
生成快捷方式
最新推荐文章于 2023-11-08 17:57:58 发布