Página 1 de 1

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

Publicado: Vie Mar 29, 2013 7:13 am
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.

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

Publicado: Vie Mar 29, 2013 12:22 pm
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
--

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

Publicado: Vie Mar 29, 2013 5:39 pm
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.

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

Publicado: Vie Mar 29, 2013 7:57 pm
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.
--

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

Publicado: Sab Mar 30, 2013 2:54 am
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.