程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> vc 刷新系統托盤圖標

vc 刷新系統托盤圖標

編輯:.NET實例教程
************************************************************************/
/*       該函數主要是實現對系統托盤的圖標刷新的問題                     */
/*                                                                      */
/*  由於托盤程序如果被強行殺掉進程等操作後,在托盤中的圖標不能自動刪除  */
/*  顧運用以下的方法,實現模擬鼠標點擊托盤圖標,使得圖標刷新            */
/*                                                                      */
/*  使用方法: 直接調用   RefurbishTray 函數就可以了                    */
/*  作    者: 阮洲                                                     */
/*  郵    箱: [email protected]                                        */
/*  日    期: 2006-11-06                                               */
/************************************************************************/
void CGreenSpanDlg::RefurbishTray()
{
 RECT   WindowRect ;
 POINT point  ;
 int x ;
 int y ;
// int SmallIconWidth , SmallIconHeight ;
// SmallIconWidth  = GetSystemMetrics(SM_CXSMICON);
//    SmallIconHeight = GetSystemMetrics(SM_CYSMICON);
 HWND hwnd = GetSysTrayWnd()  ;
 ::GetWindowRect(hwnd , &WindowRect ) ;
 ::GetCursorPos(&point) ;
 for( x = 1 ; x < WindowRect.right - WindowRect.left - 1  ; x ++  )
 {
  for( y = 1 ; y < WindowRect.bottom - WindowRect.top - 1 ; y ++  )
  {
   SetCursorPos( WindowRect.left + x, WindowRect.top + y ) ;
   Sleep(0);
  }
 }
// SetCursorPos(SmallIconWidth,SmallIconHeight);

/************************************************************************/
/*       該函數主要是獲取系統托盤句柄                                   */
/*                                                                      */
/*  這個方法只支持NT以上的版本,如果是NT 以下的版本,則需要根據
/*  任務欄窗口以及其子窗口結構  修改                                    */
/*  作    者: 阮洲   

;                                                 */
/*  郵    箱: [email protected]                                        */
/*  日    期: 2006-11-06                                               */
/************************************************************************/
HWND CGreenSpanDlg::GetSysTrayWnd()
{
 
 HWND hwnd ;
 hwnd = ::FindWindow("Shell_TrayWnd", NULL ) ;
 
 hwnd = ::FindWindowEx(hwnd, 0, "TrayNotifyWnd", NULL );
 return hwnd ;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved