Часто задаваемые вопросы и ответы по C/C++/Visual C++
Последнее обновление: 27.08.2003
FAQ по C/C++/Visual C++
Работа с сетью
Как создать ярлык
Вариант Alfa
Составители: SUnteXx, Leprecon
Как создать ярлык
A: (Alfa)
Оригинальная ссылка: нету

#include <shlobj.h>
/* 
Shell link creator, by Alfa
mailto: alfa7@pisem.net
*/ 

    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);//Иконка у ярлыка

Содержание Обсудить на форуме « Предыдущая статья | Следующая статья »
Перейти к FAQ:  
FAQ составлен по материалам Форума на Исходниках.Ру.
Copyright © 2002 by Sources.ru. All rights reserved.