Página 1 de 2

gtwvt e problemas com comando run

Enviado: 23 Mai 2012 23:13
por Abel
Ola pessoal, depois de semanas na tentativa de liberar uma versao console usando a gtwvt que abria uma janela msdos extra, consegui resolver colocando o comando -gui no meu arquivo hbp. Agora o programa em janela tem as propriedades de encolher ou esticar o tamanho da janela. O problema é que agora tudo o que eu rodo utilizando o comando RUN abre uma janela dos nova.
meu backup roda atraves de um comando usando run("ARJ.EXE .....") , as vezes uso o comando run("net time ....") para ver o horario do servidor, utilizo o run("blat.exe ...") e smtpsend.exe para enviar emails e nao queria que ficasse abrindo uma nova janela na hora do comando run.

Sera que da para arrumar isso, ou uma vez a janela sendo GUI nao tem jeito ?
tentei a procedure myrun() que achei no forum mas da erro de compilacao no createobject
tentei tambem winexec, mas nao consegui.

tente tambem usar hb_processrun() mas da erro de compilacao,

se alguem puder esclarecer estas duvidas, agradeco antecipadamente.

estou usando harbour 3.1 , modo console.
Abel

gtwvt e problemas com comando run

Enviado: 23 Mai 2012 23:26
por Pablo César
Tente com:

Execute file ( cCommand ) Wait Hide

gtwvt e problemas com comando run

Enviado: 24 Mai 2012 00:07
por Abel
Ola amigo,
fiz assim

rA_CC="NET TIME \\ESTACAO > TXT"
EXECUTE FILE( rA_CC ) WAIT HIDE

Ao compilar deu erro

Error E0030 Syntax error "syntax error at 'file' "

sera que tenho q incluir alguma lib ou procedure ?

Abracos
ABEL

gtwvt e problemas com comando run

Enviado: 24 Mai 2012 10:03
por Pablo César
Ahh é o SET TIME ? Disso tenho exemplo DataHora.exe postado na seção de Downloads. O comando EXECUTE FILE é da HMG e da MInigui, terias que usar o comilador deles e adicionar #include "hmg.ch" ou "minigui.ch".
fiz assim

rA_CC="NET TIME \\ESTACAO > TXT"
EXECUTE FILE( rA_CC ) WAIT HIDE
A sintaxe não é: FILE(
e sim: FILE ( // veja que tem um espaço entre meio do FILE e a aspas

Mas se você está tentando em Harbour, pode tentar com hb_processRun().
hb_processrun() mas da erro de compilacao
Mas como erro de compilação ? Qual erro ? TEM QUE DIZER QUAL ERRO !

Qual é a versão do seu Harbour, não é a v 3.1 ? Não entendo isso, eu não tenho problema com compilações. Eu acho que você deveria continuar tentando compilar através da Minigui ou HMG, assim você se afirma no Harbour. Digo isto, porque não deveria dar erro de compilação, ao menos que você tenha feito a sintaxe errada, algo assim. Mas você não especifica...

Olha fiz este exemplo e funciona direitinho, só que notei que a sintaxe do seu NET TIME não está totalmente correta. Você quer usar esse comando para atualizar a hora desde um terminal ou servidor ? Então você precisa adicionar /SET /YES e pergunto para quê direcionar para arquivo ? Tem alguma finalidade ?

Código: Selecionar todos

Function Main()
Local cStdOut, cStdErr

cCommand:="NET TIME \\ESTACAO /SET /YES"
hb_processRun( cCommand, , @cStdOut, @cStdErr, .t. )
// WaitRun(cCommand, 7 )
Return Nil
Pode ver também que existe o WaitRun que você poderia usar também.

Agora veja como são utilizados, aqui no fórum os colegas disponibilizaram a sintaxe de cada um desse comandos:

hb_processRun
WaitRun

gtwvt e problemas com comando run

Enviado: 25 Mai 2012 09:56
por Pablo César
Existe outra opção também: hb_run()

Hoje respondi um tópico com um conteúdo similar no fórum oficial da HMG e apresentavam alguns inconvenientes. A saída que postei, era criar um arquivo .bat e executá-lo. Daí pode ser visto o comportamento do SO e havia algumas falhas. Não sei ao certo se são decorrentes do próprio SO ou do modo de execução/interpretação do hb_run sobre os erros provenientes do SO.

Por exemplo, onde era:

Código: Selecionar todos

cCommand := "DIR /B *.* > lstfiles.txt"
HB_RUN( cCommand )
A solução foi. Criar arquivo teste.bat com:
DIR /B *.* > lstfiles.txt
pause

E aí então executar o HB_RUN( "Teste.bat" )

Outro exemplo foi:

Código: Selecionar todos

cFile := "tstprn.prg"
cPuerto := "\\deyp05\fx2180"
HB_RUN( "TYPE " + cFile + " > " + cPuerto )
E a solução foi, criar arquivo teste.bat com:
TYPE tstprn.prg > \\deyp05\fx2180\tstprn.prg
pause

E executá-lo. Claro que neste ultimo exemplo, o SO reclama se colocar apenas TYPE tstprn.prg > \\deyp05\fx2180 dá erro Acesso negado. mas isso é decorrente do SO.

gtwvt e problemas com comando run

Enviado: 25 Mai 2012 23:22
por Abel
Amigo Pablo, agradeço desde ja toda a ajuda neste topico,
o problema é que todas as opcoes que consegui a tela preta do msdos "pisca", gerando um efeito muito ruim.

exemplo1: (funciona, mas pisca a tela preta)

Código: Selecionar todos

rA_X="Net.bat"
hb_run(rA_X)

exemplo2: (funciona, mas pisca a tela preta)

Código: Selecionar todos

rA_X="Net.bat"
xhbrun( rA_X )    

Function xhbrun(ccommand) 
LOCAL hIn, hOut, hErr 
LOCAL cData, hProc, nLen 
Local nRet 
hProc := HB_OpenProcess( cCommand , @hIn, @hOut, @hOut ) 
nRet :=  HB_ProcessValue( hProc ) 
  
   FClose( hProc ) 
   FClose( hIn ) 
   FClose( hOut ) 
   FClose( hErr ) 
return nRet
exemplo3: (funciona, mas pisca a tela preta)

Código: Selecionar todos

rA_X="Net.bat"
hb_processrun( rA_CCOMAND , cStdln , @cStdOut, @cStdErr, .f.)
exemplo4: (nao consegui compilar)

Código: Selecionar todos

rA_X="Net.bat"
MYRUN(rA_X)      

FUNCTION MYRUN(cComando)
local oShell, RET
oShell:=CreateObject("WScript.Shell")    // Erro compilacao UNDEFINED TO HB_FUN_CREATEOBJECT

RET   :=oShell:Run("%comspec% /c "+cComando,0,.t.)
oShell:=NIL
RETURN IIF(RET=0,.t.,.f.)
exemplo5: (Nao consegui compilar): Erro compilacao UNDEFINED REFERENCE TO HB_FUN_WAITRUN

Código: Selecionar todos

rA_X="Net.Bat"
WAITRUN(rA_X, 7)
talvez se eu conseguir fazer compilar algumas das opcoes que da erro, eu consiga resolver,
tentei a inclusao de alguns .ch, mas nao vai mesmo, pelo menos ate agora...

Abracos,
ABEL

gtwvt e problemas com comando run

Enviado: 25 Mai 2012 23:43
por sygecom
Olá Abel,
tente assim:

Código: Selecionar todos

rA_X="Net.bat"
MYRUN(rA_X)

FUNCTION MYRUN(cComando)
local oShell, RET

#ifdef __XHARBOUR__
   oShell := CreateObject("WScript.Shell")
#else
   oShell := win_oleCreateObject("WScript.Shell")
#endif

RET :=oShell:Run("%comspec% /c "+cComando,0,.t.)
oShell:=NIL
RETURN IIF(RET=0,.t.,.f.)

gtwvt e problemas com comando run

Enviado: 26 Mai 2012 00:08
por Abel
valeu pela dica, mas to com algum problema de configuracao ou esta faltando algum .ch
pois da erro undefined reference to hb_fun_win_olecreateobject

ja inclui a hbwin.ch mas nao resolveu.

sabe o que pode estar faltando ?

Abracos
ABEL

gtwvt e problemas com comando run

Enviado: 26 Mai 2012 00:17
por sygecom
Qual a versão do seu Harbour ou xHarbour ?

gtwvt e problemas com comando run

Enviado: 26 Mai 2012 11:01
por Abel
harbour 3.1.0dev (Rev. 17325)

acho q ate tem outras revisoes, mas nao sei como baixa-las...

utilizo hbide.

gtwvt e problemas com comando run

Enviado: 26 Mai 2012 11:17
por sygecom
Link ao seu projeto as seguintes LIB: xHB.LIB E HBWIN.LIB

gtwvt e problemas com comando run

Enviado: 26 Mai 2012 15:29
por Abel
Deu certo, coloquei no hbp

-lxhb
-lhbwin

estava vendo os posts, enquanto muitos de voces ja sao veteranos em harbour, xharbour devido ao tempo que estao mexendo com a ferramenta eu estou dando os primeiros passos, passos dificeis para quem estava acostumado apenas com a programacao clipper 5.1 totalmente modo console.

Agradeço a todos pelo forum e pelo tempo dedicado para ensinar aqueles que estao começando como eu e/ou tem duvidas que podem ser esclarecidas pelos que ja passaram pelas mesmas dificuldades ...

Para Deus dividir é o mesmo que multiplicar ....

Abraços e um otimo fim de semana a todos ...
Abel

gtwvt e problemas com comando run

Enviado: 05 Jun 2012 23:37
por Abel
pessoal, depois de muitos dias tentando resolver a execucao de programas externos pelo harbour,
enfim consegui com a ajuda de voces, e agora tenho outro problema que nao consegui achar nada no forum.

como faco para abrir um site de dentro do meu sistema ?
tentei
myrun("https://pctoledo.org")
hb_run("https://pctoledo.org")
run("https://pctoledo.org")

mas nenhuma das opcoes resolveu.
e se eu tiver um executavel armazenado ele tb nao executa o download
exemplo:
myrun("https://pctoledo.org/downloads/atualiza.exe")

meu sistema é modo console compilado com -gui / harbour 3.1
Abracos

gtwvt e problemas com comando run

Enviado: 06 Jun 2012 00:10
por sygecom
Olá,
Tente usando SHELLEXECUTE(), essa função consta na Hwgui e já foi postado na fórum, de uma procurada.

Ex:
SHELLEXECUTE( 'http://www.google.com.br', "open", NIL, NIL, 2 )

gtwvt e problemas com comando run

Enviado: 06 Jun 2012 21:02
por Abel
ola, tentei mas da erro undefined reference to Hb_fun_shellexecute,

eu uso o harbour 3.1 nigthy, tenho na minha compilacao:

-lhbct
-lgtwvt
-gui
-lhbwin
-lxhb

utilizo para programar e compilar a propria ide que veio com o harbour hbide.exe

hwgui é outra ide ?

Abel