Форум — Ответы ( К темам )
? | Виталий: Создание ярлычков на программы в С++ 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 |