인터넷 바로 가기 생성
[사용예제]
CreateShortcut( "연결주소", "아이콘경로", "저장될경로" );
* 아이콘경로 미사용시 NULL 값지정
[사용함수]
BOOL CInstsysDlg::CreateShortcut(char *ptchURLName, char* ptchIconPath, char *ptchShortcutName)
{
BOOL Res = TRUE;
Res &= WritePrivateProfileString("InternetShortcut", "URL", ptchURLName, ptchShortcutName);
Res &= WritePrivateProfileString("InternetShortcut", "IconFile", ptchIconPath, ptchShortcutName);
Res &= WritePrivateProfileString("InternetShortcut", "IconIndex", "1", ptchShortcutName);
return Res;
}
//ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
바로 가기 생성
[초기세팅]
API 인 경우 CoInitialize(NULL);
MFC 인 경우 CoInitialize(NULL); or AfxOleInit();
strPathObj : 바로가기를 만들 실제 파일의 경로와 파일명
strPathLink : 바로가기가 위치할 경로와 이름
strDesc : 마우스가 올라갈때 나타나는 풍선 도움말
[함수 및 예제코드]
HRESULT MyMainClass::CreateLink(const CString strPathObj,const CString strPathLink, const CString strDesc)
{
HRESULT hres;
IShellLink* psl;
CString strMyPath = strPathLink;
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (LPVOID*) &psl);
if (SUCCEEDED(hres))
{
IPersistFile* ppf;
psl->SetPath(strPathObj);
psl->SetDescription(strDesc);
hres = psl->QueryInterface( IID_IPersistFile, (LPVOID *) &ppf);
if (SUCCEEDED(hres))
{
strMyPath += ".lnk"; // Important !!!
WORD wsz[MAX_PATH];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, strMyPath, -1, wsz,MAX_PATH);
hres = ppf->Save(wsz, TRUE);
if (hres != S_OK )
MessageBox(NULL, "IPersistFile->Save() Error", "Error", MB_OK);
ppf->Release();
}
psl->Release();
}
return hres;
}
(예제)
HRESULT hRes;
hRes = CreateLink(_T("D:\test.txt"),_T("D:\test.txt 의 바로가기"),_T("test.txt의 바로가기"));
if(SUCCEEDED(hRes))
{
//성공
}
else
{
//실패
}
'C & C++ > C & C++' 카테고리의 다른 글
[Tip] 리스트 컨트롤을에 저장된 리스트를 텍스트 파일로 저장하기 (0) | 2011.12.14 |
---|---|
유니코드 환경에서 CString -> char[] 변환 (0) | 2011.12.14 |
파일 읽기 (0) | 2011.12.14 |
MFC 잡다한거 (0) | 2011.12.14 |
16진수 입력받기 (0) | 2011.12.14 |
댓글