| Цитата(Klin @ 23.11.2002, 09:57) | Baa, слушай можешь на мыло мне бросить проект?
Мыло: [email protected] |
Хммммм.... на моей первой версии Буилдера работает првда пришлось малость подправить... Для эксперимента я создал форму и на ней кнопочку создающую ярлык... проверь все ли ты написал и куда вставил #include
| Код | //--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop
#include <shlobj.h>
#include "Unit1.h" //--------------------------------------------------------------------------- #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- fastcall TForm1::Button1Click(TObject *Sender) { // /* Shell link creator, by Iliya mailto: [email protected] */ //...... 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]; // Тип Ворд исправил на вчар :-))) WCHAR 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);// Сохранить // А нафиг нам HRes  // У меня сразу все заработало // правда пришлось по диску искать куда link_for_app_1.lnk // забрасывается :-) SLink->Release(); CoUninitialize(); } //---------------------------------------------------------------------------
|
|