executar um exe e ficar aguardando el eterminar

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

executar um exe e ficar aguardando el eterminar

Mensagem por paiva_dbdc »

BOM dia

como executar um exe e ficar aguardando ele TERMINAR para poder dar continuidade ?


para executar um mexe uso o myrun + ele Não fica aguardando o retorno.

alguém sabe como fazer ?


JA eliminei o start do cComando := "start " + cComando + não resolveu

ob PAiva

xrun = [\dbdc\dosprint /PDF ] + xfile
MyRun(xrun)

function MYRUN( cComando )

local oShell, RET

cComando := "start " + cComando
oShell := CreateObject( "WScript.Shell" )
RET := oShell:Run( "%comspec% /c " + cComando , 0, .T. )
oShell := NIL

return iif( RET = 0, .T., .F. )
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

executar um exe e ficar aguardando el eterminar

Mensagem por Kapiaba »

Tente:

Código: Selecionar todos

RET := oShell:Run( "%comspec% /c " + cComando , 2, .T. )  // ou 3 para ver se fica esperando.
Abs
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

executar um exe e ficar aguardando el eterminar

Mensagem por JoséQuintas »

Depende do que estamos falando.
Se for Harbour 3.2, depois de certas correções há alguns anos, basta usar igual no Clipper:

Código: Selecionar todos

RUN ( "programa.exe" )
Em ambiente gráfico pode ser mais complicado, porque se tentar clicar na tela que aguarda a execução, vai parecer que o programa travou.
Nesse caso, talvez multithread seja mais interessante.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

executar um exe e ficar aguardando el eterminar

Mensagem por Jairo Maia »

Olá Paiva,

Veja se esse exemplo ajuda:

Código: Selecionar todos

/*
  Compilar usando a lib -lxhb
*/
Function Main()

 nHandlerProcess := hb_OpenProcess( "SeuExecutavel.Exe" )
 nCodeReturn := HB_ProcessValue( nHandlerProcess, .T. )
 
 If nCodeReturn = 0
  Hb_Alert( "O processo foi encerrado com sucesso!" )
 Else
  Hb_Alert( "O processo foi encerrado, Mas houve erro!" )
 EndIf
 
Return
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

executar um exe e ficar aguardando el eterminar

Mensagem por rossine »

Olá,

No link abaixo tem um exemplo de uma rotina que montei, mult-uso:

https://pctoledo.org/forum/viewto ... lue#p89206

Veja se serve.

T+
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

executar um exe e ficar aguardando el eterminar

Mensagem por paiva_dbdc »

Boa noite.

Kapiaba, Não ficou aguardando com 2 e 3 e ate com .F. rs

Jairo, o prg NAo respondia tipo TRAVADO. Não linkei nenhuma lib adicional

José uso XHB e nele o RUN não fica aguardando a finalizacao

faltou só testar a função do rossine (rs)


ob a todos

Paiva
Responder