PDA

View Full Version : سوال: حذف آيکون از System tray ؟



keynet
پنج شنبه 23 خرداد 1387, 15:08 عصر
سلــــــــــام
من مي خوام يک آيکون از System tray حذف کنم اما برنامه در حال اجرا باشه .
توي يکي از سايت ها خوندم که با ويژال بيسيک مي شه اينکار رو انجام داد - اينجوري:

براي hide کردن يه آيکون از system tray بايد از دستور زير استفاده کنيد:

::SendMessage(hwnd, TB_DELETEBUTTON, index, 0);


که hwnd هندل system tray هست، TB_DELETEBUTTON يه integer هست (که define شده)، index شماره آيکون هست، صفر هم ...

براي به دست آوردن هندل سيستم تراي ميتوني از کد زير استفاده کني:

HWND FindTrayToolbarWindow(){
HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL);
if(hWnd){
hWnd = ::FindWindowEx(hWnd,NULL,_T("TrayNotifyWnd"), NULL);
if(hWnd){
hWnd = ::FindWindowEx(hWnd,NULL,_T("SysPager"), NULL);
if(hWnd){
hWnd = ::FindWindowEx(hWnd, NULL,_T("ToolbarWindow32"), NULL);
}
}
}
return hWnd;
}


کد بالا رو ميتونيد به صورت خلاصه قشنگ زير هم بنويسيدش:

HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL)
&& hWnd = ::FindWindowEx(hWnd,NULL,_T("TrayNotifyWnd"), NULL)
&& hWnd = ::FindWindowEx(hWnd,NULL,_T("SysPager"), NULL)
&& hWnd = ::FindWindowEx(hWnd, NULL,_T("ToolbarWindow32"), NULL)
|| hWnd = null;


...امـــــــــــا
اما مشکل اينجاست که من از ويژال بيسيک سر در نمي آرم و چيزي ازش نمي دونم
حالا هم به کمک شما اساتيد عزيز نياز دارم تا بتوانم اين کار رو انجام دهم
اگه بتونين منو راهنمايي کنيد خيلي ممنون مي شم