• Viernes 1 de Noviembre de 2024, 08:25

Autor Tema:  Problema Para Cerrar Aplicación  (Leído 1464 veces)

martinss

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Problema Para Cerrar Aplicación
« en: Domingo 28 de Enero de 2007, 05:43 »
0
Hola tengo un problema, tengo un code que es para que cuando hagan click en la "X" estando el proceso win.exe abierto salga un messagebox pidiendo confirmación para salir del programa o no, el mensaje sale pero cuando ponen "NO" el programa finaliza y no debe hacer eso

Código: Text
  1. LRESULT CALLBACK LaserInjectorDialog( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam )
  2. {
  3.     switch ( Msg )
  4.     {
  5.     case WM_INITDIALOG:
  6.         return TRUE;
  7.  
  8.     case WM_COMMAND:
  9.     if(Check("win.exe")) MessageBox (NULL, "Seguro que quieres salir?",
  10.     "Mensaje", MB_YESNO|MB_ICONINFORMATION);
  11.     if (IDYES)
  12.     DestroyWindow(hDlg);
  13.     else
  14.   {
  15.   }
  16.   return 1;
  17.  
  18.   case WM_SYSCOMMAND:
  19.         if ( wParam == SC_MINIMIZE )
  20.         {
  21.             trayIcon.hWnd = hDlg;
  22.             Shell_NotifyIcon( NIM_ADD, &trayIcon );
  23.             ShowWindow( hDlg, SW_HIDE );
  24.             return TRUE;
  25.         }
  26.         break;
  27.     case WM_TRAY:
  28.         TrayIcon( (WPARAM)(hDlg), lParam );
  29.         break;
  30.     }
  31.    
  32.     return FALSE;
  33. }
  34.  

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Problema Para Cerrar Aplicación
« Respuesta #1 en: Domingo 28 de Enero de 2007, 12:11 »
0
Hola,
¿has probado a hacer lo siguiente?:
Código: Text
  1.  
  2. LRESULT CALLBACK LaserInjectorDialog( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam )
  3. {
  4.    switch ( Msg )
  5.    {
  6.    case WM_INITDIALOG:
  7.        return TRUE;
  8.  
  9.    case WM_COMMAND:
  10.    if(Check("win.exe"))
  11.    {    
  12.           if(MessageBox (NULL, "Seguro que quieres salir?","Mensaje", MB_YESNO|MB_ICONINFORMATION) == IDYES)
  13.                     DestroyWindow(hDlg);
  14.    }
  15.  eturn 1;
  16.  
  17.   case WM_SYSCOMMAND:
  18.        if ( wParam == SC_MINIMIZE )
  19.        {
  20.            trayIcon.hWnd = hDlg;
  21.            Shell_NotifyIcon( NIM_ADD, &trayIcon );
  22.            ShowWindow( hDlg, SW_HIDE );
  23.            return TRUE;
  24.        }
  25.        break;
  26.    case WM_TRAY:
  27.        TrayIcon( (WPARAM)(hDlg), lParam );
  28.        break;
  29.    }
  30.    
  31.    return FALSE;
  32. }
  33.  
  34.  
No hay tonto más molesto que el ingenioso.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Para Cerrar Aplicación
« Respuesta #2 en: Domingo 28 de Enero de 2007, 12:54 »
0
De la MSDN:
If an application processes this message, it should return zero.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

martinss

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problema Para Cerrar Aplicación
« Respuesta #3 en: Domingo 28 de Enero de 2007, 16:50 »
0
perfecto carmamezo :)
ahora una pregunta y si quiero agregarle otro proceso? con dos..

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Para Cerrar Aplicación
« Respuesta #4 en: Domingo 28 de Enero de 2007, 17:05 »
0
Ahora me percato que tu codigo tenia:

Código: Text
  1.  
  2. if (IDYES)
  3.  
  4.  

Obviamente eso evalua siempre a TRUE al ser IDYES diferente de 0 y se ejecuta siempre la llamada a DestroyWindow ...

Si queres mas procesos a comprobar es muy simple:

Código: Text
  1.  
  2. if (  (Check("win.exe")) || (Check("whatever.exe")) || (Check("Other.exe")) )
  3. {
  4. }
  5.  
  6.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

martinss

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problema Para Cerrar Aplicación
« Respuesta #5 en: Domingo 28 de Enero de 2007, 18:16 »
0
Funciona perfecto, gracias a los dos.  :hola: