WinMain » 25 дек 2007, 17:16
Fil писал(а):
WinMain, ты не мог бы привести какой-нибудь конкретный пример готового компонента в Windows или в приложении на С++... или как выйти на него.
Да запросто. Вот простенький пример, как программно создать ярлык для указанного файла и поместить его на Рабочий стол. Это делается с помощью системного COM-объекта ShellLink. К примеру, возьмём программу Калькулятор...
Код: Выделить всё
#include "stdafx.h"
#include <shlobj.h>
#include <atlbase.h>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR tszDeskPath[MAX_PATH]; // Путь к папке Рабочего стола...
SHGetSpecialFolderPath(::GetDesktopWindow(), tszDeskPath, CSIDL_COMMON_DESKTOPDIRECTORY, FALSE);
lstrcat(tszDeskPath, _T("\\Калькулятор.lnk"));
::CoInitialize(NULL); // Инициализация СОМ
CComPtr<IShellLink> pSL;
CComPtr<IPersistFile> pPF;
// Обращение к объекту ShellLink...
::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pSL);
pSL->SetPath(_T("Calc.exe"));
pSL->QueryInterface(IID_IPersistFile, (void**)&pPF);
pPF->Save(CComBSTR(tszDeskPath), TRUE);
::CoUninitialize(); // Деинициализация СОМ
return 0;
}
После компиляции и запуска приложения на Рабочем столе Windows должен появиться ярлык "Калькулятор", через который можно будет запустить программу.
[quote="Fil"]
WinMain, ты не мог бы привести какой-нибудь конкретный пример готового компонента в Windows или в приложении на С++... или как выйти на него.
[/quote]
Да запросто. Вот простенький пример, как программно создать ярлык для указанного файла и поместить его на Рабочий стол. Это делается с помощью системного COM-объекта ShellLink. К примеру, возьмём программу Калькулятор...
[code]
#include "stdafx.h"
#include <shlobj.h>
#include <atlbase.h>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR tszDeskPath[MAX_PATH]; // Путь к папке Рабочего стола...
SHGetSpecialFolderPath(::GetDesktopWindow(), tszDeskPath, CSIDL_COMMON_DESKTOPDIRECTORY, FALSE);
lstrcat(tszDeskPath, _T("\\Калькулятор.lnk"));
::CoInitialize(NULL); // Инициализация СОМ
CComPtr<IShellLink> pSL;
CComPtr<IPersistFile> pPF;
// Обращение к объекту ShellLink...
::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pSL);
pSL->SetPath(_T("Calc.exe"));
pSL->QueryInterface(IID_IPersistFile, (void**)&pPF);
pPF->Save(CComBSTR(tszDeskPath), TRUE);
::CoUninitialize(); // Деинициализация СОМ
return 0;
}
[/code]
После компиляции и запуска приложения на Рабочем столе Windows должен появиться ярлык "Калькулятор", через который можно будет запустить программу.