Lu Lin All 把自己的窗口从TASKBAR上干掉! 27 Dec 98 13:58:41 嘿嘿.可让我发现TASKBAR的秘密了:DDD 每个WIN32应用程序一旦创建了窗口,那么他 就会在TASKBAR上显示出来个按钮.要把按钮 干掉,从SDK里不能发现任何有消除的接口. 原来MS在SHELL扩展里又开始保留东西了.足 足8个小时泡在电脑上.终于揭开了秘密.以下 是我整理好后的COM接口: DECLARE_INTERFACE_(ITaskbarList, IUnknown) { STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD(ActivateTab)(HWND) PURE; STDMETHOD(AddTab)(HWND) PURE; STDMETHOD(DeleteTab)(HWND) PURE; STDMETHOD(HrInit)(void) PURE; }; typedef ITaskbarList *LPITaskbarList; 那么怎么使用呢?请看: /*-------------------------------------------------- *陆麟写的把自己的WINDOW按钮从TASKBAR上干掉的源程序. *1998.12.27. *欢迎装载.请不要删除任何部分 *------------------------------------------------*/ #include "wnd.h" #include #include DECLARE_INTERFACE_(ITaskbarList, IUnknown) { STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD(ActivateTab)(HWND) PURE; STDMETHOD(AddTab)(HWND) PURE; STDMETHOD(DeleteTab)(HWND) PURE; STDMETHOD(HrInit)(void) PURE; };//如果把这段加到SHLOBJ.H里那么以后就不要每次都再抄一遍了. typedef ITaskbarList *LPITaskbarList;//定义个指针.用起来更象在用SDK:) int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int){ MSG msg; WND *lpWND;//WND负责创建窗口.是我自己写的类. LPITaskbarList pobj=0; CoInitialize(0);//初始化COM.开始奇妙的组件对象模型之旅:) lpWND=new WND(hInstance,lpCmdLine,SW_MAXIMIZE);//创建个WINDOW. CoCreateInstance(CLSID_TaskbarList,0,1,IID_ITaskbarList, (void **)&pobj);//CLSID_TaskbarList在SHLGUID.H里有定义 //另外一个也有.幸亏MS还有这些常量在.否则 //还要自己去查注册表.万幸万幸.这句程序会 //返回一个指针列表.指向我上面公开的接口. pobj->HrInit();//一定要干这件事.又是初始化:(他会告诉SHELL我们 //要有动作乐:) pobj->DeleteTab(lpWND->hWnd);//所有以上的代码归根结底就是为执行 //这句代码作准备.他会干掉TASKBAR上 //的按钮:)终于完工了. while (GetMessage(&msg,0,0,0))//这是很普通的消息循环. { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } 以上含有基本的函数调用序列.其中WND是我自己写的类.(毕竟没兴趣学 MFC了.自己写其实也很简单:))有关WND类的源程序没贴.大家应该要了也 没有用.所以就不贴了.以上代码没有任何错误检查.请自己加进去. ... 看了我的信可是大补啊!:).陆麟 --- 蓝波95 v2.54 [NR] * Origin: SHANG HAI WILL UNIVERSITY BBS(57956523) (6:654/1007)