Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

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

Автор: trainer

#include <objidl.h>
 
 #include <shlobj.h>
 
 ...
 
 //---------------------------------------------------------------------
 
 #define HOTKEY(modifier,key) ((((modifier)&0xff)<<8)|((key)&0xff))
 
 //---------------------------------------------------------------------
 
 // Создание ярлыка
 
 // Входные параметры:
 
 //  pwzShortCutFileName - путь и имя ярлыка, например, "C:\\Блокнот.lnk"
 
 //  Если не указан путь, ярлык будет создан в папке, указанной в следующем параметре.
 
 //  Прим.: Windows сама НЕ добавляет к имени расширение .lnk
 
 //  pszPathAndFileName  - путь и имя exe-файла, например, "C:\\Windows\\NotePad.Exe"
 
 //  pszWorkingDirectory - рабочий каталог, например, "C:\\Windows"
 
 //  pszArguments        - аргументы командной строки, например, "C:\\Doc\\Text.Txt"
 
 //  wHotKey             - горячая клавиша, например, для Ctrl+Alt+A     HOTKEY(HOTKEYF_ALT|HOTKEYF_CONTROL,'A')
 
 //  iCmdShow            - начальный вид, например, SW_SHOWNORMAL
 
 //  pszIconFileName     - путь и имя файла, содержащего иконку, например, "C:\\Windows\\NotePad.Exe"
 
 //  int iIconIndex      - индекс иконки в файле, нумеруется с 0
 
 bool __fastcall CreateShortCut(
 
                 LPWSTR pwzShortCutFileName,
 
                 LPTSTR pszPathAndFileName,
 
                 LPTSTR pszWorkingDirectory,
 
                 LPTSTR pszArguments,
 
                 WORD wHotKey,
 
                 int iCmdShow,
 
                 LPTSTR pszIconFileName,
 
                 int iIconIndex) {
 
    IShellLink * pSL;
 
    IPersistFile * pPF;
 
    HRESULT hRes;
 
    // Получение экземпляра компонента "Ярлык"
 
    hRes = CoCreateInstance(CLSID_ShellLink,
 
                            0,
 
                            CLSCTX_INPROC_SERVER,
 
                            IID_IShellLink,
 
                            (LPVOID *)&pSL);
 
    if( SUCCEEDED(hRes) ) {
 
       hRes = pSL->SetPath(pszPathAndFileName);
 
       if( SUCCEEDED(hRes) ) {
 
          hRes = pSL->SetArguments(pszArguments);
 
          if( SUCCEEDED(hRes) ) {
 
             hRes = pSL->SetWorkingDirectory(pszWorkingDirectory);
 
             if( SUCCEEDED(hRes) ) {
 
                hRes = pSL->SetIconLocation(pszIconFileName,iIconIndex);
 
                if( SUCCEEDED(hRes) ) {
 
                   hRes = pSL->SetHotkey(wHotKey);
 
                   if( SUCCEEDED(hRes) ) {
 
                      hRes = pSL->SetShowCmd(iCmdShow);
 
                      if( SUCCEEDED(hRes) ) {
 
                         // Получение компонента хранилища параметров
 
                         hRes = pSL->QueryInterface(IID_IPersistFile,(LPVOID *)&pPF);
 
                         if( SUCCEEDED(hRes) ) {
 
                            // Сохранение созданного ярлыка
 
                            hRes = pPF->Save(pwzShortCutFileName,TRUE);
 
                            pPF->Release();
 
                         }
 
                      }
 
                   }
 
                }
 
             }
 
          }
 
       }
 
       pSL->Release();
 
    }
 
    return SUCCEEDED(hRes);
 
 }
 
 



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS