C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[4637] Re:단축아이콘 만드는 방법..
임승균.조로 [zoro] 3466 읽음    2000-12-18 00:00
안녕하세요

지금 보여드릴려는 소스는 델코에서 민성기님 소스를 참조했음을 밝혀둡니다.
일단 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();
}
//---------------------------------------------------------------------------

그럼 즐거운 하루 되십시요..

물음표 님이 쓰신 글 :
: 단축아이콘 만드는 방법좀...알려주시면 감사하겠습니다...

+ -

관련 글 리스트
4624 단축아이콘 만드는 방법.. 물음표 3034 2000/12/18
4637     Re:단축아이콘 만드는 방법.. 임승균.조로 3466 2000/12/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.