2013-04-15 4 views
5

コンソール私は別のコンソールアプリケーションを呼び出すゲームを少し持っています。何かのようなWinampの多くのウィンドウ(メインプレイリスト)。私が2つのコンソールウィンドウを呼び出すと、タスクバーにあるが開きすぎて、別途ウィンドウを開く必要はなく、メインウィンドウウィンドウをタスクバーに入れておいてそれをクリックすると、すべての子アプリがポップアップします。コンソールC++プログラムをタスクバーから隠す

P.S.私はShowWindow (GetConsoleWindow(), SW_HIDE);に精通していますが、ウィンドウも非表示にしていますので、タスクバーからのみ隠したいと思っています。

答えて

5

私がコンソールウィンドウでこれを達成するために覚えている唯一の方法は、シェルインターフェイスITaskbarListを使用することです。キャプテンObvliousといくつかの研究は、次のコードに

hr = CoCreateInstance(
    CLSID_TaskbarList, 
    NULL, 
    CLSCTX_INPROC_SERVER, 
    IID_ITaskbarList, 
    reinterpret_cast<void**>(&taskbar)); 
if(!FAILED(hr)) 
{ 
    // Remove the icon from the task bar 
    taskbar->DeleteTab(GetConsoleWindow()); 
    // Release it 
    taskbar->Release(); 
} 
6

ありがとう:含まShObjIdl.h

ITaskbarList *pTaskList = NULL; 
HRESULT initRet = CoInitialize(NULL); 
HRESULT createRet = CoCreateInstance(CLSID_TaskbarList, 
             NULL, 
             CLSCTX_INPROC_SERVER, 
             IID_ITaskbarList, 
             (LPVOID*)&pTaskList); 

if(createRet == S_OK) 
{ 

    pTaskList->DeleteTab(GetConsoleWindow()); 

    pTaskList->Release(); 
} 

CoUninitialize(); 

は素晴らしい作品!

注:initRetcreateRetの値としてS_OKを取得する必要があります!

+0

+1解決策を見つけるのにうってつけです。 –

関連する問題