Zástupca/Shortcut

Funkcia pre vytvorenie zástupcu súboru (.LNK).
Parametre:
Subor - cesta k súboru na ktorý má zástupca odkazovať (C:\subor.exe)
Argument - argument pri volaní exe súboru (argument1)
Zastupca - cesta, kde sa má zástupca vytvoriť (C:\Documents and Settings\Administrator\Desktop\Test.lnk)
Popis - popis súboru (odkaz na subor)
Cesty k sys. adresárom.


Použitie:

#include "shortcut.h"
//-----------------------------------------------------
VytvorZastupcu("c:\\subor.exe", "argument", "C:\\Documents and Settings\\Administrator\\Desktop\\Test.lnk", "odkaz na subor") ; 

zastupca.h

//---------------------------------------------------------------------------

#ifndef shortcutH
#define shortcutH
//---------------------------------------------------------------------------
#endif
BOOL VytvorZastupcu(LPCTSTR Subor, LPCTSTR Argument, LPCTSTR Zastupca, LPCTSTR Popis);

zastupca.cpp

//---------------------------------------------------------------------------
#pragma hdrstop

#include <shlobj.h>
#include <system.hpp>

#include "shortcut.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)

 BOOL VytvorZastupcu(LPCTSTR Subor, LPCTSTR Argument, LPCTSTR Zastupca, LPCTSTR Popis)
{
	 HRESULT hres;
	 IShellLink* slnk;
	 CoInitialize(NULL);
     IPersistFile* pf;
     WORD wsz[MAX_PATH];
     hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&slnk);
	 if ( hres != S_OK ) return FALSE;
	 hres = slnk->QueryInterface(IID_IPersistFile, (LPVOID*)&pf);
	 if ( hres != S_OK ) return FALSE;
	 hres = slnk->SetPath(Subor);
	 if ( !SUCCEEDED(hres) ) return FALSE;
	 hres = slnk->SetArguments(Argument) ;
	 if ( !SUCCEEDED(hres) ) return FALSE;
	 hres = slnk->SetDescription(Popis);
	 if ( !SUCCEEDED(hres) ) return FALSE;
	 MultiByteToWideChar(CP_ACP, 0, Zastupca, -1, (LPWSTR)wsz, MAX_PATH);
	 hres = pf->Save((LPWSTR)wsz, TRUE);
	 pf->Release();
	 slnk->Release();
	 CoUninitialize();
	 return ( SUCCEEDED(hres));
}

Leave a Reply