Página 1 de 1
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 29 Mai 2012 14:55
por lugab
Pois é, amigos, estou precisando recompilar um "modo console" em xharbour e me deparei com essa necessidade.
Em harbour eu usava o HB-RUN() de forma perfeita, mas agora, usando o Xharbour to tendo q usar o RUN , mas ele abre janela preta no fundo, e ainda prende o PC até o fim da execução, defeitos q o HB_RUN() não apresenta...
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 29 Mai 2012 16:21
por Pablo César
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 29 Mai 2012 17:29
por Imatech
WinApi: ShellExecute()
Uso:
ShellExecute_Normal( cPrograma, cParametro_01, cParametro_02, cParametro_01 ) ou somente ShellExecute_Normal( cPrograma )
ShellExecute_Maximized( cPrograma, cParametro_01, cParametro_02, cParametro_01 ) ou somente ShellExecute_Maximized( cPrograma )
Código: Selecionar todos
#pragma BEGINDUMP
#include "hbapi.h"
#include <windows.h>
#include <shellapi.h>
HB_FUNC( SHELLEXECUTE_MAXIMIZED )
{
ShellExecute( NULL,
"OPEN",
hb_parc( 1 ),
hb_parc( 2 ),
hb_parc( 3 ),
SW_SHOWMAXIMIZED );
}
HB_FUNC( SHELLEXECUTE_NORMAL )
{
ShellExecute( NULL,
"OPEN",
hb_parc( 1 ),
hb_parc( 2 ),
hb_parc( 3 ),
SW_SHOWNORMAL );
}
#pragma ENDDUMP
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 31 Mai 2012 00:12
por lugab
Ola amigos,
Eu já havia experimentado o shellexecute(), o myrun() e outras dicas aqui do fórum, porém essas funções "obedecem a forma de associação de arquivos instalada pelo windows de cada usuário, de forma que, muitas vezes mesmo a gente mandando executar, por exemplo, myrun("c:\wordpad.exe c:\arq.rtf") ou shellexecute("...") , ainda assim o windows realiza a tarefa através do "winword.exe", ignorando o wordpad.exe, devido a tal "aassociação".
Mesmo depois de ir na seção de "associação de arquivos", escolher "abrir com " um ARQUIVO.RTF e marcando "abrir sempre com wordpad", ainda assim algumas instalações só o abrem com winword.exe
Já o Hb_RUn() não segue essa "ordem associativa do windows" e executa mesmo o "wordpad.exe", porém, o meu problema é que preciso recompilar os fontes com o xharbour (em vez de harbour) devido a uma lib sem fontes, q só roda em xharbour
Ainda assim, obrigado, pela atenção
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 02 Jun 2012 21:41
por sygecom
Olá Gabriel,
Tente usando esse abaixo:
Nota: Esse abre sem trancar o sistema
Código: Selecionar todos
***********************
FUNCTION MYRUN2( cRun )
***********************
Local hIn, hOut, nRet //, hProc
Local hProc := HB_OpenProcess( cRun , @hIn, @hOut, @hOut )
IF hProc < 0
FClose( hProc )
FClose( hIn )
FClose( hOut )
Return(.F.)
* ShowMsg("Error: " + valtoprg(FError()))
ENDIF
nRet := HB_ProcessValue( hProc,.f. )
IF nRet > 0
FClose( hProc )
FClose( hIn )
FClose( hOut )
Return(.F.)
endif
FClose( hProc )
FClose( hIn )
FClose( hOut )
//hb_gcAll()
Return(.T.)
No xharbour tem algo equivalente a HB_RUN() ?
Enviado: 04 Jun 2012 12:23
por lugab
Obrigado, Leonardo...
Essa função funcionou bem com o xharbour..
Obrigado pela enésima vez