keynet
پنج شنبه 23 خرداد 1387, 16: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;
...امـــــــــــا
اما مشکل اينجاست که من از ويژال بيسيک سر در نمي آرم و چيزي ازش نمي دونم
حالا هم به کمک شما اساتيد عزيز نياز دارم تا بتوانم اين کار رو انجام دهم
اگه بتونين منو راهنمايي کنيد خيلي ممنون مي شم
من مي خوام يک آيکون از 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;
...امـــــــــــا
اما مشکل اينجاست که من از ويژال بيسيک سر در نمي آرم و چيزي ازش نمي دونم
حالا هم به کمک شما اساتيد عزيز نياز دارم تا بتوانم اين کار رو انجام دهم
اگه بتونين منو راهنمايي کنيد خيلي ممنون مي شم