1. 바로가기
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <shlobj.h>
// 바로가기 만들기
int main()
{
CoInitialize( 0 );
// 원하는 COM객체를 생성한다.
// 클래스 팩토리가 없을때 사용한다.
IShellLink* pLink;
HRESULT ret = CoCreateInstance(
CLSID_ShellLink, // CLS ID
0, // 포함(사용안함)
CLSCTX_INPROC_SERVER, // DLL에 있는 COM
IID_IShellLink, // 인터페이스 ID
reinterpret_cast<void**>(&pLink) );
if( FAILED( ret ) )
{
printf( "실패\n" );
CoUninitialize();
return 0;
}
//--------------------------------------------------------
pLink->SetPath(_T("C:\\windows\\system32\\calc.exe")); // 단축아이콘을 만들 화일
pLink->SetDescription( _T("Calc Application") ); // 설명
// IPersistFile 인터페이스가 필요하다.
IPersistFile* pFile;
ret = pLink->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pFile) );
if( FAILED( ret ) )
{
printf( "실패\n" );
pLink->Release();
CoUninitialize();
return 0;
}
pFile->Save( _T("C:\\aaa.lnk"), FALSE );
//--------------------------------------------------
pLink->Release();
pFile->Release();
CoUninitialize();
}
2. Taskbar
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <shlobj.h>
// Taskbar제어
// 1. SHAppBarMessage() 태스크바의 위치,크기
// 2. ITaskbarList 인터페이스
int main()
{
CoInitialize( 0 );
// TaskbarList 객체를 생성한다.
ITaskbarList* pList;
HRESULT ret = CoCreateInstance( CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER,
IID_ITaskbarList, (void**)&pList );
if( SUCCEEDED( ret ) )
{
printf( "성공\n" );
HWND hwnd = FindWindow( 0, _T("계산기") );
pList->DeleteTab( hwnd );
getch();
pList->Release();
}
CoUninitialize();
}
댓글을 달아 주세요
어떤 자료파일(예하면 텍스트파일)을 더블클릭으로 내가 만든 편집기에서 나오게 하려면 어떻게 해야 하나요?
음. 텍스트 파일을 원하는 프로그램으로 열려면 해당 파일에서 우클릭해서 메뉴를 띠운다
음에 연결프로그램에서 원하는 편집기를 선택하면(항상이프로그램으로 열기) 될 거예요.
연결프로그램이 안뜨면 Shift+우클릭해서 해보고요~.
아 혹시 저런 방법 말고 프로그램으로 바꾸려면 (HKEY_CLASSES_ROOT\.txt)
레지스트리를 수정해서 해야는데 Registry 클래스를 이용해보세요.
내 프로그램에서는 다른 조작을 해줄게 없나요?
프로그램 시작인자로 화일경로를 받아서 열어주면 될거에요.
예전에 당근 프로젝트 분석해봐는데 그게 많이 도움이 될더라고요. 참고하세요.
http://winapi.co.kr/project/dangeun/dgintro.htm
알려주어 고마워요