Taskleistenschaltfläche verstecken?



  • Kennt jemand einen Weg wie man die Taskleistenschaltfläche eines Fensters verstecken kann? Ich hab da nämlich einige Programmfenster bei denen die Taskleistenschaltflächen mir die ganze Taskleiste verstopfen.

    Ich habe schon probiert im Code eines Programmes was zu finden mit denen man die Taskleistenschaltflächen in den Traybereich verbannen kann, aber leider wurde da nur mit ShowWindowAsync( p->hWnd, SW_HIDE ) und ShowWindowAsync( p->hWnd, SW_SHOW ) gearbeitet die auch gleich das Programmfenster mit aus- oder einblenden was ich nicht will.



  • //*****************************************************************************
        //*
        //*
        //*     TaskbarTools
        //*
        //*
        //*****************************************************************************
        //
        //  Funktionen für die Steuerung der Taskbar
        //
        //      BOOL    TaskbarHide(HWND Hwnd)      Taste in der Taskbar verstecken
        //      BOOL    TaskbarShow(HWND Hwnd)      Taste in der Taskbar anzeigen
        //
        //  Nachrichten Verarbeitung:
        //
        //      ON_MESSAGE(TB_NOTIFYICON, OnProc)
        //
        //      void OnProc(UINT wParam,UINT lParam)    // lParam ist die ID
        //          {
        //          switch(lParam)
        //              {
        //          case WM_LBUTTONDOWN:
        //          case WM_RBUTTONDOWN:
        //              }
        //          }
    
        #ifndef     __TASKBARTOOLS_H__
        #define     __TASKBARTOOLS_H__
    
        #define     TB_NOTIFYICON       0x2F19
    
        BOOL         TaskbarInit();
        void __cdecl TaskbarExit(void);
    
        BOOL TaskbarHide(HWND Hwnd);
        BOOL TaskbarShow(HWND Hwnd);
    
        #endif
    
    //*****************************************************************************
        //*
        //*
        //*     TaskbarTools
        //*
        //*
        //*****************************************************************************
        //
        //  Funktionen für die Steuerung der Taskbar
        //
        //      BOOL    TaskbarHide(HWND Hwnd)      Taste in der Taskbar verstecken
        //      BOOL    TaskbarShow(HWND Hwnd)      Taste in der Taskbar anzeigen
        //
    
        #include    <windows.h>
        #include    <shellapi.h>
        #include    <shlwapi.h>
        #include    <shlobj.h>
        #include    <string.h>
        #include    "TaskbarTools.h"
    
        typedef struct ITaskbarListVtbl
            {
            BEGIN_INTERFACE
    
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( VOID __RPC_FAR * This,REFIID riid,void __RPC_FAR *__RPC_FAR *ppvObject);
            ULONG   ( STDMETHODCALLTYPE __RPC_FAR *AddRef         )( VOID __RPC_FAR * This);
            ULONG   ( STDMETHODCALLTYPE __RPC_FAR *Release        )( VOID __RPC_FAR * This);
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *HrInit         )( VOID __RPC_FAR * This);
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddTab         )( VOID __RPC_FAR * This, HWND hwnd);
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteTab      )( VOID __RPC_FAR * This, HWND hwnd);
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ActivateTab    )( VOID __RPC_FAR * This, HWND hwnd);
            HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetActiveAlt   )( VOID __RPC_FAR * This, HWND hwnd);
    
            END_INTERFACE
            } ITaskbarListVtbl;
    
        typedef struct
            {
            ITaskbarListVtbl    *lpVtbl;
            }ITaskbarList_;
    
        static  ITaskbarList_   *list=0;
        static  int exit_add=0;
    
        //*****************************************************************************
        //*
        //*     TaskbarInit
        //*
        //*****************************************************************************
        //  Initialisiert die Taskbar Routienen
        //  Ergibt TRUE wenn erfolgreich
        BOOL TaskbarInit()
        {
        HRESULT hr;
    
            if(list)return TRUE;
    
            hr=CoInitialize( NULL );
            if(!SUCCEEDED(hr))return FALSE;
    
            hr=CoCreateInstance(CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_ITaskbarList,(void**)&list);
            if(!SUCCEEDED(hr))return FALSE;
    
        return TRUE;
        }
    
        //*****************************************************************************
        //*
        //*     TaskbarExit
        //*
        //*****************************************************************************
        //  Deinitialisiert die Taskbar Routienen
        void __cdecl TaskbarExit(void )
        {
            if(!list)return;
    
            CoUninitialize();
            list=0;
        }
    
        //*****************************************************************************
        //*
        //*     TaskbarHide
        //*
        //*****************************************************************************
        //  Versteckt die Taskleiste die zu Hwnd gehört
        //  Ergibt TRUE wenn erfolgreich
        BOOL TaskbarHide(HWND Hwnd)
        {
        HRESULT hr;
    
            if(!list)
                {
                if(!TaskbarInit())return FALSE;
                if(!exit_add){atexit(TaskbarExit);exit_add=1;}
                }
    
            hr=list->lpVtbl->DeleteTab(list,Hwnd);
            if(!SUCCEEDED(hr))return FALSE;
    
        return TRUE;
        }
    
        //*****************************************************************************
        //*
        //*     TaskbarShow
        //*
        //*****************************************************************************
        //  Erstellt eine Taste in der Taskleiste die zu Hwnd gehört
        //  Ergibt TRUE wenn erfolgreich
        BOOL TaskbarShow(HWND Hwnd)
        {
        HRESULT hr;
    
            if(!list)
                {
                if(!TaskbarInit())return FALSE;
                if(!exit_add){atexit(TaskbarExit);exit_add=1;}
                }
            hr=list->lpVtbl->AddTab(list,Hwnd);
            hr=list->lpVtbl->ActivateTab(list,Hwnd);
            if(!SUCCEEDED(hr))return FALSE;
    
        return TRUE;
        }
    


  • Sehr schön. Funktioniert prima. Hab mir das gleich als hilfreiches Snippet kopiert.


Anmelden zum Antworten