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.