Форум — Ответы     (  К темам )
 ?  Виталий: Создание ярлычков на программы в С++ Builder 5 (18-02-2003 11:20:37)
Помогите додуматься как мне нужно создавать ярлыки на программы используя Builder. Спасибо.
 Георгий (18-02-2003 13:04:04)
в комплекте с BCB есть программа ImageEditor — она и умеет создавать иконки.
 SergeyS (20-02-2003 09:35:00)
Пример создания ярлыка на рабочем столе:

#include <shlobj>
#include <shlguid>
#include <atlbase>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString fname = ParamStr(0);

CComPtr<IUnknown> shl_obj;
shl_obj.CoCreateInstance(CLSID_ShellLink);
CComQIPtr<IShellLink, &IID_IShellLinkA> shl_lnk(shl_obj);
OleCheck(shl_lnk->SetPath(fname.c_str()));
OleCheck(shl_lnk->SetWorkingDirectory(ExtractFilePath(fname).c_str()));
CComPtr<IMalloc> alloc;
OleCheck(SHGetMalloc(&alloc));
LPITEMIDLIST items;
if (SUCCEEDED(SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOP, &items)))
try {
char path[MAX_PATH];
SHGetPathFromIDList(items, path);
wchar_t buf[MAX_PATH];
swprintf(buf, L"%hs\\my test program.lnk", path);
OleCheck(CComQIPtr<IPersistFile>(shl_obj)->Save(buf, false));
} __finally {
alloc->Free(items);
}
}

Для нормальной компиляции примера нужно:
- объявить Conditional define: NO_WIN32_LEAN_AND_MEAN
- добавить include path: $(BCB)\include\atl