Página 1 de 1

Erro na função HB_OPENPROCESS

Enviado: 16 Jan 2010 22:05
por clodoaldomonteiro
Olá amigos.

Para executar sistemas externos, usu a função HB_OpenProcess() que deve retornar -1 se acontecer algum erro durante a execução da expressão, conforme código abeixo:

Código: Selecionar todos

function MYRUN( cComando, msg )
   msg:=if(msg=NIL,'',msg)
   mValor:=hb_openprocess(cComando,,,,.t.)     //xhb.lib
   
   if mValor<0
      DBOX(msg+'|Erro do DOS nº ' + tran(ferror(),'99'),,,,,"ATENÇÃO!")
      RETU .f.
   endif   
   retu .t.
O problema é que a linha "if mValor<0", está retornando .t. e no meu teste deveria retornar .f., ai exibiria uma mensagem e retornaria como .f.

Vi que se eu inserir a linha "? mValor" antes da linha do IF, a rotina funciona perfeitamente bem.

Algém sabe me dizer o porque dessa falha?

Re: Erro na função HB_OPENPROCESS

Enviado: 16 Jan 2010 23:07
por alaminojunior
Experimenta enxugar, tirando a variável.

Código: Selecionar todos

function MYRUN( cComando, msg )
msg:=if(msg=NIL,'',msg)
if hb_openprocess(cComando,,,,.t.)   < 0
   DBOX(msg+'|Erro do DOS nº ' + tran(ferror(),'99'),,,,,"ATENÇÃO!")
   RETU .f.
endif   
retu .t.

Re: Erro na função HB_OPENPROCESS

Enviado: 19 Jan 2010 12:09
por clodoaldomonteiro
Alamino!

A dica foi perfeita, executou normal.
Valeu mesmo.

[Considero encerrado este tópico].