Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как написать маленькую инталяшку?

10K
28 декабря 2006 года
Vitaliy Boberman
34 / / 24.10.2006
Есть несколько файлов проекта: один exe и парочка вспомогательных.
задача:
1) скопировать в определенную папку, которую выбрал пользователь (тут все понятно)
2) на рабочий стол поместить ярлык, назвать его именем, отличным от имени exe-шника.

2-й пункт - как?
334
28 декабря 2006 года
HexEdit
809 / / 27.07.2006
Цитата: Vitaliy Boberman
Есть несколько файлов проекта: один exe и парочка вспомогательных.
задача:
1) скопировать в определенную папку, которую выбрал пользователь (тут все понятно)
2) на рабочий стол поместить ярлык, назвать его именем, отличным от имени exe-шника.

2-й пункт - как?


Код:
// CreateLink - uses the Shell's IShellLink and IPersistFile interfaces
//              to create and store a shortcut to the specified object.
//
// Returns the result of calling the member functions of the interfaces.
//
// Parameters:
// lpszPathObj  - address of a buffer containing the path of the object.
// lpszPathLink - address of a buffer containing the path where the
//                Shell link is to be stored.
// lpszDesc     - address of a buffer containing the description of the
//                Shell link.

HRESULT CreateLink(LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPCSTR lpszDesc)
{
    HRESULT hres;
    IShellLink* psl;
 
    // Get a pointer to the IShellLink interface.
    hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                            IID_IShellLink, (LPVOID*)&psl);
    if (SUCCEEDED(hres))
    {
        IPersistFile* ppf;
 
        // Set the path to the shortcut target and add the description.
        psl->SetPath(lpszPathObj);
        psl->SetDescription(lpszDesc);
 
        // Query IShellLink for the IPersistFile interface for saving the
        // shortcut in persistent storage.
        hres = psl->QueryInterface(&IID_IPersistFile, (LPVOID*)&ppf);
 
        if (SUCCEEDED(hres))
        {
            WCHAR wsz[MAX_PATH];
 
            // Ensure that the string is Unicode.
            MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH);
           
            // TODO: Check return value from MultiByteWideChar to ensure
                     success.
 
            // Save the link by calling IPersistFile::Save.
            hres = ppf->Save(wsz, TRUE);
            ppf->Release();
        }
        psl->Release();
    }
    return hres;
}

А также MSDN, Shell Links
294
29 декабря 2006 года
Plisteron
982 / / 29.08.2003
Imho, InnoSetup поможет гиганту мысли.
240
29 декабря 2006 года
aks
2.5K / / 14.07.2006
однозначно )
334
29 декабря 2006 года
HexEdit
809 / / 27.07.2006
Цитата: Plisteron
Imho, InnoSetup поможет гиганту мысли.


Да - InnoSetup - это весч.

2Vitaliy Boberman
Не парься, юзай его...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог