Page 2 of 3
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Thu Aug 07, 2014 5:39 pm
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
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Thu Aug 07, 2014 6:28 pm
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
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Thu Aug 07, 2014 9:07 pm
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
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Thu Aug 07, 2014 9:18 pm
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
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Thu Aug 07, 2014 9:34 pm
by danielmaximiliano
estoy intentando hacer un demo para consola que no cierre con la "X".
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Fri Aug 08, 2014 6:33 pm
by Jairo Maia
Hi abinfra,
Thank You for your reply about my message. Now I know that your problem is more complex.
Re: Deshabilitar la "X" de cerrar el programa.
Posted: Sat Aug 09, 2014 2:37 am
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 ...

Re: Deshabilitar la "X" de cerrar el programa.
Posted: Sat Aug 09, 2014 8:34 am
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 ...

Re: Deshabilitar la "X" de cerrar el programa.
Posted: Sat Aug 09, 2014 5:38 pm
by LOUIS
Hola Abinfra
Esperemos el ejemplo de Daniel Maximiliano, porque Yo tambien tengo el mismo problema

Re: Deshabilitar la "X" de cerrar el programa.
Posted: Mon Aug 11, 2014 3:14 pm
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.