In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Foro público de Xailer en español
Responder
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Mensaje por Carlos Ortiz »

Será que es solo para DOS, pues he quitado el GTWIN y deje el GTGUI y
sigue saliendo la ventana de DOS.
Por ejemplo ejecutando algo tan sencillo como esto.
Function Main
run calc.exe
Return .t.
Muchas gracias.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Mensaje por jfgimenez »

Carlos,
> Será que es solo para DOS, pues he quitado el GTWIN y deje el GTGUI y
> sigue saliendo la ventana de DOS.
>
> Por ejemplo ejecutando algo tan sencillo como esto.
>
> Function Main
> run calc.exe
> Return .t.
Para evitar la consola, hay que hacer varias cosas:
1) No enlazar ninguna librerí­a GT, como has hecho, y poner en algún
lugar del programa esto:
ANNOUNCE HB_GTSYS
REQUEST HB_GT_NUL_DEFAULT
2) Añadir como flag de enlazado en el proyecto (en las "Propiedades del
proyecto", "Compilador de C", "Enlazador", "Más opciones"):
--subsystem windows
3) No usar el comando RUN, pues aunque el programa no abra la consola,
este comando lo hará. En su lugar, utiliza:
hb_ProcessRun( "calc.exe" )
Te adjunto un proyecto con XEdit que no muestra la consola.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
--
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Mensaje por Carlos Ortiz »

Gracias José,
probé pero debo tener algo mal en la definición del entorno o hace algo
que no entiendo por que al cambiar de entorno me duplica las libs del
proyecto y después cuando compilo me saltan un montón de warnings de
error en rojo.
(Me arme 2 entornos uno con xHarbour y el otro con Harbour)
HB_OpenProcess con xHarbour no me dió error, será igual que ShellExecute()?
Muchas gracias, seguiré tocando.
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Mensaje por zeasoftware »

Hace rato, alguien puso esto y lo he utilizado desde entonces, y me funciona excelente:
//---------------------------------------------------------- --------------------
FUNCTION MYRUN(cComando, nStyle, lWait, lShowResult)
LOCAL oShell, RET, lRetorno:=.T., oErro
*
IF OS_IsWin9x() .or. OS_IsWin98()
RUN (cComando)
ELSE
IF valtype( nStyle ) != "N"
nStyle := 0
ENDIF
IF ValType( lWait ) != "L"
lWait := .T.
ENDIF
IF ValType( lShowResult ) != "L"
lShowResult := .F.
ENDIF
*
TRY
oShell := CreateObject( "WScript.Shell" )
IF !GetEnv( "OS" ) == "Windows_NT"
cComando += "start " + cComando
ENDIF
RET := oShell:Run( "%comspec% /c " + cComando, nStyle, lWait )
IF lShowResult .AND. RET > 0 .and. RET <= 32
MessageBox(,"Erro Win_Run(): " + Str( RET,,, .t. ))
ENDIF
oShell := NIL
lRetorno:=(RET==0)
CATCH oErro
TRY
RUN (cComando)
CATCH oErro
MessageBox(,'Error MYRUN()')
END
END
ENDIF
RETURN lRetorno
Cuando me aparece la ventana de windows al ejecutar algun programa externo, solo cambio las propiedades de la ventana de CDM.exe, y lo pongo minimizado y listo.
Espero que les sirva.
Saludos.
Ramón Zea
Móvil.: 993-231.62.29
Tel./Fax: 993-353-46-73
www.zeasoftware.com.mx
soporte@zeasoftware.com.mx
zeasoftware@hotmail.com
Aliado FACTURAXION
"Carlos Ortiz" escribió en el mensaje de noticias:5155c4d7$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Gracias José,
probé pero debo tener algo mal en la definición del entorno o hace algo
que no entiendo por que al cambiar de entorno me duplica las libs del
proyecto y después cuando compilo me saltan un montón de warnings de
error en rojo.
(Me arme 2 entornos uno con xHarbour y el otro con Harbour)
HB_OpenProcess con xHarbour no me dió error, será igual que ShellExecute()?
Muchas gracias, seguiré tocando.
--
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Sobre xEdit y quitar la pantalla negra de DOS al ejecutar algo.

Mensaje por Carlos Ortiz »

Gracias Ramón.
El 29/03/2013 15:57, zeasoftware@hotmail.com escribió:
> Hace rato, alguien puso esto y lo he utilizado desde entonces, y me
> funciona excelente:
> *//--------------------------------------------------------- ---------------------*
> **
> *FUNCTION MYRUN(cComando, nStyle, lWait, lShowResult)
> LOCAL oShell, RET, lRetorno:=.T., oErro
> *
> IF OS_IsWin9x() .or. OS_IsWin98()
> RUN (cComando)
> ELSE
> IF valtype( nStyle ) != "N"
> nStyle := 0
> ENDIF
> IF ValType( lWait ) != "L"
> lWait := .T.
> ENDIF
> IF ValType( lShowResult ) != "L"
> lShowResult := .F.
> ENDIF
> *
> TRY
> oShell := CreateObject( "WScript.Shell" )
> IF !GetEnv( "OS" ) == "Windows_NT"
> cComando += "start " + cComando
> ENDIF
> RET := oShell:Run( "%comspec% /c " + cComando, nStyle, lWait )
> IF lShowResult .AND. RET > 0 .and. RET <= 32
> MessageBox(,"Erro Win_Run(): " + Str( RET,,, .t. ))
> ENDIF
> oShell := NIL
> lRetorno:=(RET==0)
> CATCH oErro
> TRY
> RUN (cComando)
> CATCH oErro
> MessageBox(,'Error MYRUN()')
> END
> END
> ENDIF
> RETURN lRetorno*
> Cuando me aparece la ventana de windows al ejecutar algun programa
> externo, solo cambio las propiedades de la ventana de CDM.exe, y lo
> pongo minimizado y listo.
> Espero que les sirva.
> Saludos.
> Ramón Zea
> Móvil.: 993-231.62.29
> Tel./Fax: 993-353-46-73
> www.zeasoftware.com.mx
> soporte@zeasoftware.com.mx
> zeasoftware@hotmail.com
> Aliado FACTURAXION
> "Carlos Ortiz" escribió en el mensaje de
> noticias:5155c4d7$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Gracias José,
> probé pero debo tener algo mal en la definición del entorno o hace algo
> que no entiendo por que al cambiar de entorno me duplica las libs del
> proyecto y después cuando compilo me saltan un montón de warnings de
> error en rojo.
> (Me arme 2 entornos uno con xHarbour y el otro con Harbour)
> HB_OpenProcess con xHarbour no me dió error, será igual que ShellExecute()?
> Muchas gracias, seguiré tocando.
Responder