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

Ваш аккаунт

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

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

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

Как создать ярлык?

321
20 декабря 2002 года
Doomych
124 / / 20.01.2000
Использую для создания ярлыка функции SHCreateShortcut() или CeSHCreateShortcut(). Подключаю Shellapi.h. Компилятор выдает сообщение "error C2065: 'SHCreateShortcut' : undeclared identifier". Кто виноват и что делать?
2.9K
10 января 2003 года
kasya
12 / / 10.01.2003
Ну если еще не разобрался, то юзай - это работает, я пробовал:

Как программно создать ярлык (WinAPI)
HRESULT CreateLink (LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPSTR lpszDesc)
{
HRESULT hres;
IShellLink *psl;

// Get a pointer to the IShellLink interface.
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&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, (void**)&ppf);
if (SUCCEEDED(hres))
{
WORD wsz[MAX_PATH];

// Ensure that the string is ANSI.
MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH);

// Save the link by calling IPersistFile::Save().
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
return hres;
}
lpszPathObj - файл, на который созхдаёться ярлык
lpszPathLink - полное имя файла ярлыка
lpszDesc - комментарий (в 2000 и ME показывается во всплывающей подсказке в меню "Пуск")

Перед этим необходимо вызовать CoInitialize(0).
Поподробнее: MSDN - раздел shell.
321
10 января 2003 года
Doomych
124 / / 20.01.2000
Уже разобрался, но все равно, спасибо!
3.1K
12 января 2003 года
deus
4 / / 11.01.2003
Цитата:
Originally posted by Doomych
Использую для создания ярлыка функции SHCreateShortcut() или CeSHCreateShortcut(). Подключаю Shellapi.h. Компилятор выдает сообщение "error C2065: 'SHCreateShortcut' : undeclared identifier". Кто виноват и что делать?



Просто компилятор был раньше, чем эта функция.
Попробуй загрузить функцию напрямую из dll.

typedef BOOL (_stdcall* qwe)(LPTSTR, LPTSTR);
qwe SHCreateShortcut = NULL;
HINSTANCE hu = LoadLibrary("shortcut.dll");
SHCreateShortcut = (qwe)GetProcAddress(hu, "SHCreateShortcut");

И юзай назровье, с понтом подключил shellapi.h. Кстати, пордключи windows.h.

С уважением, Deus.

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