#include "windows.h"
#include "winnls.h"
#include "shobjidl.h"
#include "objbase.h"
#include "objidl.h"
#include "shlguid.h"
//第一个参数是链接的目标,第二参数是链接本身的文件路径,第三个参数是快捷键信息中的备注。
HRESULT CreateLink(LPCWSTR lpszPathObj, LPCSTR lpszPathLink, LPCWSTR lpszDesc)
{
HRESULT hres;
IShellLink* psl;
//获取指向IShellLink接口的指针。假设CoInitialize已调用。
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl);
if (SUCCEEDED(hres))
{
IPersistFile* ppf;
//设置快捷方式目标的路径并添加描述
psl->SetPath(lpszPathObj);
psl->SetDescription(lpszDesc);
//查询IShellLink以获取IPersistFile接口,用于保存快捷键本身到硬盘上
hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);
if (SUCCEEDED(hres))
{
WCHAR wsz[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH);
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
return hres;
}
int main() {
CoInitialize(NULL);
CreateLink(L"C:\\Users\\Administrator\\Desktop\\dllexp.exe", "C:\\Users\\Administrator\\Desktop\\test.lnk",L"test");
}
C/C++ 创建快捷键
最新推荐文章于 2024-07-26 15:10:23 发布