• Domingo 5 de Mayo de 2024, 05:15

Autor Tema:  perdida del Icono del System Tray al reiniciar el explorer  (Leído 805 veces)

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
perdida del Icono del System Tray al reiniciar el explorer
« en: Lunes 14 de Diciembre de 2009, 18:26 »
0
Buenas:

Nuevamente, el fantasma del shellnotifyicon me persigue.

En este caso el problema que tengo es que si se reinicia el explorer.exe del windows pierdo el icono de la aplicación.

Alguien sabe como puedo:

detectar el reinicio del explorer para volverlo a poner / hacer que el icono sobreviva al explorer?

gracias

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: perdida del Icono del System Tray al reiniciar el explorer
« Respuesta #1 en: Martes 15 de Diciembre de 2009, 16:24 »
0
encontre la solución:

cuando se reinicia el explorer envia un broadcast "TaskbarCreated" a todas las ventanas del tray, asi que puedo capturarlo para reiniciar el tray:

en el codigo de la ventana que recibe los mensajes del icono
Código: C++
  1.  
  2. static UINT s_uTaskbarRestart;
  3.  
  4.         switch(m)
  5.         {
  6.               case WM_CREATE:
  7.                      s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
  8.                      return 0;
  9.  
  10.               default:
  11.                      if(m == s_uTaskbarRestart)
  12.                      {                      
  13.                          ((w32Tray*)T)->Data.cbSize=0;
  14.                          T->Update();
  15.                      }
  16.                      else
  17.                      {
  18.                          HWND ag=FindWindowEx(0,0,"myWindow","mywindow");
  19.                          if (ag!=NULL)
  20.                              SendMessage(ag,m,wp,lp);
  21.  
  22.                      }
  23.             break;
  24.         }
  25.  
  26.