반응형
시작 프로그램에 등록하는 방법으로 크게 레지스트리를 사용하는 방법과 ShellLink 를 이용한 방법이다.
여기서 소개하는 방법은 2번째 방법이다.
void CreateStartupShortcut(void)
{
HRESULT hRes = NULL;
hRes = CoInitialize(NULL);
TCHAR FullPath[MAX_PATH] = {0,};
::GetModuleFileName(NULL, FullPath, _countof(FullPath));
TCHAR StartUpPath[MAX_PATH]= {0,};
BOOL bRes = SHGetSpecialFolderPath(GetSafeHwnd(), StartUpPath, CSIDL_STARTUP, 0);
CString StrShortCut = StartUpPath;
StrShortCut.AppendFormat(_T("\\VPS.lnk"));
IShellLink *psl = NULL;
hRes = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IDD_IShellLink, (LPVOID*)&psl);
if (SUCCESS(hRes))
{
IPersistFile *ppf;
psl->SetPath(FullPath);
psl->SetDescription(_T("My ShortCut"));
hRes = psl->QueryInterface(IID_IPersistFile, (LPVOID)&ppf);
if (SUCCEEDED(hRes))
{
ppf->save(StrShortCut, TRUE);
pff->Release();
}
psl->Release();
}
CoUninitialize();
}
void DeleteStartupShortcut(void)
{
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, StrShortCut, NULL);
}
여기서 소개하는 방법은 2번째 방법이다.
void CreateStartupShortcut(void)
{
HRESULT hRes = NULL;
hRes = CoInitialize(NULL);
TCHAR FullPath[MAX_PATH] = {0,};
::GetModuleFileName(NULL, FullPath, _countof(FullPath));
TCHAR StartUpPath[MAX_PATH]= {0,};
BOOL bRes = SHGetSpecialFolderPath(GetSafeHwnd(), StartUpPath, CSIDL_STARTUP, 0);
CString StrShortCut = StartUpPath;
StrShortCut.AppendFormat(_T("\\VPS.lnk"));
IShellLink *psl = NULL;
hRes = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IDD_IShellLink, (LPVOID*)&psl);
if (SUCCESS(hRes))
{
IPersistFile *ppf;
psl->SetPath(FullPath);
psl->SetDescription(_T("My ShortCut"));
hRes = psl->QueryInterface(IID_IPersistFile, (LPVOID)&ppf);
if (SUCCEEDED(hRes))
{
ppf->save(StrShortCut, TRUE);
pff->Release();
}
psl->Release();
}
CoUninitialize();
}
void DeleteStartupShortcut(void)
{
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, StrShortCut, NULL);
}
반응형
'IT > C++' 카테고리의 다른 글
lambda expression (0) | 2020.09.26 |
---|---|
[MFC] 특정 사용자 권한으로 공유폴더 만들기 (0) | 2017.02.10 |
[MFC] 사용자 계정 생성 (0) | 2017.02.08 |
[MFC] Shared Folder 찾아서 제거하기 (0) | 2017.01.16 |
[MFC] Radio Button 투명 배경 (0) | 2016.11.01 |
[MFC] 심플한 로그 함수 (0) | 2016.10.18 |
[MFC] CProgressCtrl Marquee 속성 설정 (0) | 2016.10.14 |
[MFC] 재부팅 기능 (0) | 2016.10.13 |
Visual Studio 2012 Update 4 이상에서 XP 용 C++ 11 프로그램 구성 (0) | 2016.10.12 |
[MFC] 프로세스를 이미지 이름으로 검색하여 종료를 기다리기 (0) | 2016.10.07 |
댓글