반응형
프로그램들을 실행하다보면 하단에 taskbar에 실행중인 목록들이 보이는데, 너무 많은 목록들의 나열로 인해서 지저분 할 때가 있다. 이럴때는 다음과 같이 taskbar를 숨겨서 깔끔한 상태를 유지하자.
COM Lib에 보면 다음과 같이 taskbar에 대한 내용을 정리 하고 있다.
DECLARE_INTERFACE_(ITaskbarList,IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(ActiveTab)(HWND) PURE;
STDMETHOD(AddTab)(HWND) PURE;
STDMETHOD(DeleteTab)(HWND) PURE;
STDMETHOD(HrInit)(HWND) PURE;
};
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(ActiveTab)(HWND) PURE;
STDMETHOD(AddTab)(HWND) PURE;
STDMETHOD(DeleteTab)(HWND) PURE;
STDMETHOD(HrInit)(HWND) PURE;
};
다음을 활용방법이다.
pTaskbar를 쓰기 위해서 다음과 같이 초기화 해주고
LPITaskbarList pTaskbar;
CoInitialize(0);
CoCreateInstance(CLSID_TaskbarList,
CoInitialize(0);
CoCreateInstance(CLSID_TaskbarList,
0,CLSCTX_INPROC_SERVER,IID_ITaskbarList,(void**)&pTaskbar);
pTaskbar->HrInit();
숨기려는 응용프로그램의 핸들을 얻어서 제어해주면 된다.
HWND hWnd = ::FindWindow("CalcFrame", NULL)
pTaskbar->AddTab(hWnd); //hide Handle
pTaskbar->DeleteTab(hWnd); //reopen Handle
pTaskbar->AddTab(hWnd); //hide Handle
pTaskbar->DeleteTab(hWnd); //reopen Handle
해당 윈도우를 얻는 방법은 Spy++을 이용하면 된다.
위의 내용을 토대로 작성한 프로그램이다.
숨기려는 응용프로그램을 선택 후 Hide를 누르면 숨겨지게 되고, Open을 누르게 되면 현재 까지 숨겨졌던 응용프로그램을 다시 보여주게 된다.
반응형
'Programming > Windows.MFC' 카테고리의 다른 글
다중 커멘트라인 입력 받기 (0) | 2010.05.06 |
---|---|
Dialog 숨기기 (0) | 2009.12.09 |
MFC 파일 입출력(CFile 사용) (0) | 2009.10.15 |
종료 단축기 만들기 (0) | 2009.10.01 |
_tcstok 사용방법 (1) | 2009.08.12 |