|
안녕하세요
지금 보여드릴려는 소스는 델코에서 민성기님 소스를 참조했음을 밝혀둡니다.
일단 New Application 만드시고.
shlobj.h를 include하기위해
프로젝트옵션에서
conditional defines에 이거 추가 해주시고요~~
NO_WIN32_LEAN_AND_MEAN
자그럼 소스 나갑니다..
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ShortCutUnit.h"
#include "shlobj.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
CoInitialize(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IShellLink *lpshlink; // 단축아이콘을 만들기위한 shell interface
IPersistFile *lppersistfile; // 만든 파일을 저장하기 위한 interface입니다.
HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLinkA, (LPVOID *)&lpshlink);
if (FAILED(hr)) {
ShowMessage("Fail CoCreateInstance");
return;
}
/*
notepad.exe를 단축아이콘으로 c:\shortcut.lnk로 저장합니다.
*/
lpshlink->SetPath("c:\\winnt\\notepad.exe");
lpshlink->SetWorkingDirectory("c:\\winnt");
// lpshlink->SetArguments(""); //<<---- 쓰시고 싶으면 쓰십시요
// lpshlink->SetDescription(""); //<<---- 쓰시고 싶으면 쓰십시요
hr = lpshlink->QueryInterface(IID_IPersistFile, (LPVOID *)&lppersistfile);
if (FAILED(hr)) {
ShowMessage("Fail QueryInterface");
return;
}
WideString lnkname = "c:\\shortcut.lnk";
lppersistfile->Save(lnkname.c_bstr(), true);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
CoUninitialize();
}
//---------------------------------------------------------------------------
그럼 즐거운 하루 되십시요..
물음표 님이 쓰신 글 :
: 단축아이콘 만드는 방법좀...알려주시면 감사하겠습니다...
|