• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            清除無效的托盤圖標(biāo)

            int CDeleteTrayNullIconDlg::DeleteTrayNullIcon(BOOL &bNullBeDel)
            {
                HWND  hNotify1;
                int iMethod=0;
                bNullBeDel = FALSE;
                HWND  hStatus=::FindWindow("Shell_TrayWnd",NULL);  //
            得到任務(wù)欄句柄
                if  (hStatus==NULL) 
                { 
                    //AfxMessageBox ( "Get Shell_TrayWnd error!" );
                    return -1; 
                } 
                HWND  hNotify=FindWindowEx(hStatus,NULL,"TrayNotifyWnd",NULL); //
            右下角區(qū)域
                if  (hNotify==NULL)
                { 
                    //AfxMessageBox ( "Get TrayNotifyWnd error!" );
                    return -1; 
                }
            goto1:
                if (iMethod<1)
                {
                    hNotify1=FindWindowEx(hNotify,NULL,"SysPager",NULL);
                    if  (hNotify==NULL) 
                    { 
                        //AfxMessageBox ( "Get SysPager error!" );
                        return -1; 
                    }
                    if (hNotify1==NULL)
                    {
                        hNotify1=hNotify;
                    }
                }
                else
                {
                    hNotify1=hNotify;
                }

                HWND  hNotify1_0=FindWindowEx(hNotify1,NULL,"ToolBarWindow32",NULL);//右下角區(qū)域(不包括時間)
                if  (hNotify1_0==NULL)  
                { 
                    //AfxMessageBox ( "Get ToolBarWindow32 error!" );
                    return -1; 
                } 
                //-------------------
            以上是得到任務(wù)欄右下腳一塊地方的句柄
                DWORD  pid = 0; 
                GetWindowThreadProcessId(hNotify1_0,&pid); 
                if  (pid==NULL) 
                { 
                    //AfxMessageBox ( "Get pid error!" );
                    return -1; 
                }  
               
                HANDLE  hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_ALL_ACCESS,true,pid); 
                if  (hProcess==NULL) 
                { 
                    //AfxMessageBox ( "Get hd error!" );
                    return -1; 
                } 
                ::SendMessage(hNotify1_0,WM_PAINT ,NULL,NULL);
                CRect rect;
                ::GetWindowRect(hNotify1_0,&rect);
                ::InvalidateRect(hNotify1_0,&rect,FALSE);

                int  iNum=::SendMessage(hNotify1_0,TB_BUTTONCOUNT ,NULL,NULL);  //獲取任務(wù)欄上圖標(biāo)個數(shù)
                if (iNum<1 && iMethod==0)
                {
                    iMethod=2;
                    goto goto1;
                }

                unsigned long n = 0; 
                TBBUTTON  *pButton = new TBBUTTON; 
                CString  strInfo = _T(""); 
                wchar_t  name[256] = {0}; 
                TBBUTTON  BButton;
                unsigned   long    whd,proid;
                CString x;
               
                for(int i=0; i<iNum; i++) 
                { 
                    ::SendMessage(hNotify1_0,TB_GETBUTTON,i,(LPARAM)(&BButton)); 
                    ReadProcessMemory(hProcess,&BButton,pButton,sizeof(TBBUTTON),&n);  
                    if  (pButton->iString != 0xffffffff) 
                    { 
                        try 
                        { 
                            ReadProcessMemory(hProcess,(void *)pButton->iString,name,255,&n);
                        }
                        catch(...) 
                        { 
                        }     
                        strInfo.Format("%d : %s ",i+1,CString(name));
                        TRACE(strInfo);
                    }
                   
                    try
                    {  
                        whd=0;  
                        ReadProcessMemory(hProcess,(void *)pButton->dwData,&whd,4,&n);  
                    }  
                    catch(...)
                    {  
                    }  
                    proid=NULL;
                    GetWindowThreadProcessId((HWND)whd,&proid);  
                    if(proid==NULL)
                    {
                        bNullBeDel = TRUE;
                        ::SendMessage(hNotify1_0,TB_DELETEBUTTON,i,0);
                    }
                }
                delete pButton;

                return 0;
            }

            原作者謝紅偉,上代碼我作了幾個地方修改與優(yōu)化

            #define  WM_NOTIFYICON WM_USER+5

            void CDeleteTrayNullIconDlg::OnButton1()
            {
            BOOL bNullBeDel = FALSE;
            do
            {
              DeleteTrayNullIcon ( bNullBeDel );
            } while ( bNullBeDel );

            NOTIFYICONDATA ni;
            ni.cbSize=sizeof(ni);
            ni.hIcon=m_hIcon;
            //ni.hWnd=m_pMainWnd->m_hWnd;
            //strcpy(nd.szTip, "
            我的托盤");
            ni.uCallbackMessage=WM_NOTIFYICON;
            ni.uFlags= NIF_ICON | NIF_MESSAGE | NIF_TIP ;
            ni.uID=IDR_MAINFRAME;

            Shell_NotifyIcon(NIM_ADD, &ni);
            Shell_NotifyIcon(NIM_DELETE, &ni);
            AfxMessageBox ( "
            清除無效的托盤圖標(biāo)已經(jīng)完成", MB_ICONINFORMATION );

            }

            posted on 2011-08-27 15:15 肥仔 閱讀(1213) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發(fā)

            亚洲精品午夜国产VA久久成人| 91久久福利国产成人精品| 久久最新免费视频| 久久嫩草影院免费看夜色| 日韩人妻无码一区二区三区久久99| 久久99热这里只频精品6| 人妻精品久久无码区| 久久久久免费精品国产| 久久精品成人| 色婷婷久久综合中文久久蜜桃av| 97久久久久人妻精品专区| 韩国三级中文字幕hd久久精品 | 久久综合视频网| 久久国产热精品波多野结衣AV| 日产精品久久久久久久性色| 精品无码人妻久久久久久| 亚洲中文字幕久久精品无码APP| 国产69精品久久久久777| 狠狠色丁香婷婷久久综合| 狠狠色丁香久久综合婷婷| 久久狠狠爱亚洲综合影院| 香蕉久久一区二区不卡无毒影院| 久久久久亚洲精品日久生情| 99久久精品费精品国产| 久久AV高清无码| 久久久久国产亚洲AV麻豆| 国产精品一区二区久久不卡| 国产69精品久久久久APP下载| 久久久久久久综合日本亚洲| 久久99久久99精品免视看动漫| 久久人人青草97香蕉| 久久中文精品无码中文字幕| 国产精品99久久不卡| 青青国产成人久久91网| 久久国产免费观看精品| 69国产成人综合久久精品| 久久精品国产精品亚洲毛片| 久久无码人妻一区二区三区午夜| 久久天天躁夜夜躁狠狠躁2022| 人妻精品久久久久中文字幕| 免费一级欧美大片久久网|