Консультация № 109787
17.11.2007, 05:22
0.00 руб.
0 2 2
Здравствуйте!
Хотелось бы узнать как с помощью WinApi создать ярлыки добавить ярлык в Пуск Программы.
Как все закидать в EXE, чтобы все хранилось в одном файле, а при установке установить в конкретную папку.
AlfredShafikov@yandex.ru

Обсуждение

Неизвестный
17.11.2007, 05:57
общий
это ответ
Здравствуйте, Шафиков Альфред Равилович!
Вот Вам функция для создания ярлыков

Приложение:
// lpszPathObj - путь к объекту // lpszPathLink - путь самого ярлыка // lpszDesc - это то что будет в комментарии написано void CreateLink(LPCSTR lpszPathObj,LPCSTR lpszPathLink,LPCSTR lpszDesc,LPCSTR lpszArg) { HRESULT hres; IShellLink* psl; hres = CoCreateInstance(CLSID_ShellLink,0,CLSCTX_INPROC_SERVER, IID_IShellLink,(LPVOID*)&psl); if (SUCCEEDED(hres)) // проверка успешности инициализации { IPersistFile* ppf; // устанавливаем путь объекта и комментарий psl->SetPath(lpszPathObj); psl->SetDescription(lpszDesc); if (0 != lpszArg) { psl->SetArguments(lpszArg); psl->SetIconLocation(lpszPathObj,1); } hres = psl->QueryInterface(IID_IPersistFile,(LPVOID*)&ppf); if (SUCCEEDED(hres)) { WCHAR wsz[MAX_PATH]; // переделываем путь нахождение ярлыка в Unicode. MultiByteToWideChar(CP_ACP,0,lpszPathLink,-1,wsz,MAX_PATH); // все сохраняем hres = ppf->Save(wsz,TRUE); ppf->Release(); } psl->Release(); } }
давно
Посетитель
7438
7205
20.11.2007, 10:54
общий
это ответ
Здравствуйте, Шафиков Альфред Равилович!
Вообще говоря, чтобы решить подобную задачу, надо создать инсталлятор.
Есть много разных и платных, и бесплатных.
Хочу порекомендовать бесплатный Inno Setup
http://www.jrsoftware.org/download.php/is.exe?site=3
И нужно самому создавать ярлыки - все уже придумано до нас... :)
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа