Deshabilitar la "X" de cerrar el programa.

HMG en Español

Moderator: Rathinagiri

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Deshabilitar la "X" de cerrar el programa.

Post by Javier Tovar »

DENTRO de la función Main() NO. Después de la Función Main()

Code: Select all

Function Main ()

DEFINE WINDOW
ON INIT DISABLECLOSEBUTTON
....
....
....
END WINDOW

RETURN NIL

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

/******
*
*       Blocking window close button
*
*/

HB_FUNC( DISABLECLOSEBUTTON )
{
  HWND hWnd;
  HMENU hMenu; 
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
   
  if (hMenu != 0)
  { 
   DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND);
  } 

}

#pragma ENDDUMP




Saludos
User avatar
Jairo Maia
Posts: 53
Joined: Sun Jul 17, 2011 1:47 pm
Location: Campinas - SP - Brazil

Re: Deshabilitar la "X" de cerrar el programa.

Post by Jairo Maia »

Hi,

In Console Mode can to use GTWVG:

Code: Select all

/*
  Hbmk2 exemplo.prg -gtwvg -lhbwin
*/

#include "hbgtinfo.ch"

HB_GtInfo( HB_GTI_CLOSEABLE, .F. )

Function Main()
 
 SetColor( "W/W" )
 Clear Screen
 
 SetColor( "GR+/W" )
 Hb_DispBox( 1, 1, MaxRow()-1, MaxCol()-1, "ÚÄ¿³ÙÄÀ³ÃÄ´" )
 
 SetColor( "B+/W" )
 @ MaxRow()/2, 20 Say [Tecle Algo para Fechar. Botao "X" Desabilitado]
 Inkey(0)
 
Return Nil
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: Deshabilitar la "X" de cerrar el programa.

Post by abinfra »

Hola Jairo, gracias por responder.

Lamento decir que compilando con la opción -gtwvg, ya de por sí no se puede cerrar la ventana desde la esquina superior derecha, icono (X).

Yo lo que no quiero es utilizar la instrucción -gtwvg y dar con alguna instrucción que no deje cerrar la ventana desde dicho icon (X).

No usando -gtwvt ni -gtwvg, al pulsar con el botón derecho del ratón arriba del todo de la ventana, por encima del menú, aparece la opción de "propiedades" y dentro de propiedades se puede hacer la ventana más grande o mas pequeña. Sin embargo si uso las opciones mencionadas, no aparece la opción de "propiedades".

Saludos cordiales.
Antonio



Jairo Maia wrote:Hi,

In Console Mode can to use GTWVG:

Code: Select all

/*
  Hbmk2 exemplo.prg -gtwvg -lhbwin
*/

#include "hbgtinfo.ch"

HB_GtInfo( HB_GTI_CLOSEABLE, .F. )

Function Main()
 
 SetColor( "W/W" )
 Clear Screen
 
 SetColor( "GR+/W" )
 Hb_DispBox( 1, 1, MaxRow()-1, MaxCol()-1, "ÚÄ¿³ÙÄÀ³ÃÄ´" )
 
 SetColor( "B+/W" )
 @ MaxRow()/2, 20 Say [Tecle Algo para Fechar. Botao "X" Desabilitado]
 Inkey(0)
 
Return Nil
Last edited by abinfra on Thu Aug 07, 2014 9:30 pm, edited 2 times in total.
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: Deshabilitar la "X" de cerrar el programa.

Post by abinfra »

Hola Javier.
Si pongo:
FUNCTION Main()
DEFINE WINDOW
ON INIT DISABLECLOSEBUTTON
...
...
...
END WINDOW
RETURN Nil

Y a continuación:
pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"

/******
*
* Blocking window close button
*
*/

HB_FUNC( DISABLECLOSEBUTTON )
{
HWND hWnd;
HMENU hMenu;

hWnd = (HWND) hb_parnl( 1 );
hMenu = GetSystemMenu( hWnd, FALSE );

if (hMenu != 0)
{
DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND);
}

}
#pragma ENDDUMP


Me da error de sintaxis al compilar, en:
WINDOW -->en la línea donde figura: DEFINE WINDOW
INIT -->en la línea donde figura: ON INIT DISABLECLOSEBUTTON
END -->en la línea donde figura: END WINDOW

O sea, en las tres líneas dentro de la función MAIN()

Saludos cordiales,
Antonio




Javier Tovar wrote:DENTRO de la función Main() NO. Después de la Función Main()

Code: Select all

Function Main ()

DEFINE WINDOW
ON INIT DISABLECLOSEBUTTON
....
....
....
END WINDOW

RETURN NIL

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

/******
*
*       Blocking window close button
*
*/

HB_FUNC( DISABLECLOSEBUTTON )
{
  HWND hWnd;
  HMENU hMenu; 
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
   
  if (hMenu != 0)
  { 
   DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND);
  } 

}

#pragma ENDDUMP




Saludos
User avatar
danielmaximiliano
Posts: 2763
Joined: Fri Apr 09, 2010 4:53 pm
DBs Used: DBF
Location: Argentina
Contact:

Re: Deshabilitar la "X" de cerrar el programa.

Post by danielmaximiliano »

estoy intentando hacer un demo para consola que no cierre con la "X".
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Telegram invitation https://t.me/HMGWorkspace
User avatar
Jairo Maia
Posts: 53
Joined: Sun Jul 17, 2011 1:47 pm
Location: Campinas - SP - Brazil

Re: Deshabilitar la "X" de cerrar el programa.

Post by Jairo Maia »

Hi abinfra,

Thank You for your reply about my message. Now I know that your problem is more complex.
User avatar
LOUIS
Posts: 270
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: Deshabilitar la "X" de cerrar el programa.

Post by LOUIS »

Hola Abinfra

No se ve que empieces tu programa con estas 2 primeras lineas siguientes :

1) #include "HMG.CH"

2) REQUEST HB_GT_WIN_DEFAULT

por qué ?

No dices que estas trabajando en modo console ?

Se supone que estás compilando con el IDE de HMG ... :shock:
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: Deshabilitar la "X" de cerrar el programa.

Post by abinfra »

Hola Louis, gracias por responder.

He puesto antes de la función MAIN() las dos líneas que me dices.
Además de estas dos líneas, hay que añadir dentro de MAIN() o después alguna función o instrucción.
LO IDEAL SERÍA QUE ME PUSIERAS TODO EL CÓDIGO NECESARIO PARA DESACTIVAR LA "X".

Al compilar y enlazar añadiendo las dos líneas que me dices, me sale un error que dice:
hbmk2: Error: Función(es) referenciada, no encontrada, pero desconocida: RELEASEALLWINDOWS()

Gracias por tu ayuda.
Saludos cordiales,
Antonio.

LOUIS wrote:Hola Abinfra

No se ve que empieces tu programa con estas 2 primeras lineas siguientes :

1) #include "HMG.CH"

2) REQUEST HB_GT_WIN_DEFAULT

por qué ?

No dices que estas trabajando en modo console ?

Se supone que estás compilando con el IDE de HMG ... :shock:
User avatar
LOUIS
Posts: 270
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: Deshabilitar la "X" de cerrar el programa.

Post by LOUIS »

Hola Abinfra

Esperemos el ejemplo de Daniel Maximiliano, porque Yo tambien tengo el mismo problema :cry:
User avatar
danielmaximiliano
Posts: 2763
Joined: Fri Apr 09, 2010 4:53 pm
DBs Used: DBF
Location: Argentina
Contact:

Re: Deshabilitar la "X" de cerrar el programa.

Post by danielmaximiliano »

Hola a Todos :

Todavia estoy luchando para saber la instancia donde corre la aplicacion D.O.S creada.
por ahora les sugiero utilizar la aplicacion ConsoloNoClose para evitar que una alicacion se cierre utilizando "X" desde su ventana
la misma se puede bajar desde aqui http://www.uwe-sieber.de/files/consolenoclose.zip

funciona muy bien y no consume recursos, esta hecho en Visual Basic.
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Telegram invitation https://t.me/HMGWorkspace
Post Reply