您的位置:首页 > 其它

vc 创建快捷方式

2011-02-24 10:50 357 查看
//判断是否是第一次运行,如果是第一次运行就创建桌面快捷方式

DWORD dwMark = 0;

DWORD dwSize = sizeof(dwMark);

SHGetValue(HKEY_CURRENT_USER, _T("Software//hrjd//SearchMachine//SearchKey"), TEXT("mark"), NULL, &dwMark, &dwSize);

if(dwMark == 0)

{

TCHAR szPath[MAX_PATH] = TEXT("");

LPITEMIDLIST lpIdl = NULL;

SHGetSpecialFolderLocation(GetSafeHwnd(), CSIDL_DESKTOP, &lpIdl);

if(lpIdl != NULL)

{

SHGetPathFromIDList(lpIdl, szPath);

if(GetFileAttributes(szPath) & FILE_ATTRIBUTE_DIRECTORY)

{

PathAppend(szPath, TEXT("//网络共享.lnk"));

HRESULT hResult;

IShellLink *pShellLink = NULL;

IPersistFile *pPersistFile = NULL;

CoInitialize(NULL);

hResult = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&pShellLink);

if(SUCCEEDED(hResult))

{

TCHAR szSelfPath[MAX_PATH];

GetModuleFileName(NULL, szSelfPath, MAX_PATH);

pShellLink->SetPath(szSelfPath);

hResult = pShellLink->QueryInterface(IID_IPersistFile, (void**)&pPersistFile);

if(SUCCEEDED(hResult))

{

WCHAR szWPath[MAX_PATH];

wsprintfW(szWPath, L"%S", szPath);

pPersistFile->Save(szWPath, STGM_READWRITE);

pPersistFile->Release();

}

pShellLink->Release();

}

dwMark = 1;

SHSetValue(HKEY_CURRENT_USER, _T("Software//hrjd//SearchMachine//SearchKey"), TEXT("mark"), REG_DWORD, &dwMark, sizeof(dwMark));

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: