Взято из: http://www.sources.ru/cpp/faqs/faq_forum.shtml
Исходный код:
Код |
#include < shlobj.h > /* Shell link creator, by Iliya mailto: [email protected] */ ...... CoInitialize(NULL); IShellLink * SLink; HRESULT HRes = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, IID_IShellLink, ( LPVOID*)&SLink); HRes = SLink->SetPath("C:\\app.exe");// Путь к запускаемой программе, для которой создаем ярлык HRes = SLink->SetWorkingDirectory("C:\\");// Рабочий каталог для програмы
IPersistFile* PF; HRes = SLink->QueryInterface(IID_IPersistFile, (LPVOID*)&PF);
WORD path[MAX_PATH]; TCHAR buf1[MAX_PATH]; LPITEMIDLIST pl;
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pl); SHGetPathFromIDList(pl, buf1);
lstrcat(buf1, "\\"); lstrcat(buf1, "link_for_app_1.lnk"); MultiByteToWideChar(CP_ACP, 0, buf1, -1, path, MAX_PATH); HRes = PF->Save(path, TRUE);// Сохранить SLink->Release(); CoUninitialize();
|
Добавочные функции: Исходный код:
Код | SLink->SetArguments(LPCSTR argum);// Командная строка для програмы SLink->SetIconLocation(LPSTR IconPath, strlen(IconPath), int IconIndex);//Иконка у ярлыка
|
|