Página 1 de 1

Cursor Ativo no Retorno da WGET e DOSPRINT

Enviado: 09 Mai 2007 15:37
por MarcosV
Olá Pessoal...

Utilizo a WGET (Testar Conexão Internet) e estou testando a DOSPRINT, mas nos dois casos... no retorno para o programa o Cursor fica Ativo... ja tentei varias soluções... mas nada deu resultado... ja tentei Salvar e Restaurar a Tela... SETCURSOR(0)... não utilizo Visual Lib... alguem tem a solução ?

Enviado: 09 Mai 2007 18:12
por Pablo César
Marcos,

Já que você testou o SETCURSOR(0), você está dizendo que não funciona ?. De que forma você está executando esses dos aplicativos ?

Porque após execução deles e chamar o SETCURSOR(0), deveria funcionar. Outra selução poderia ser você mandar o cursor pras cucuias... é dizer, coloque @ 24,82 say "" antes de executar esses aplicativos.

Veja se ajuda e nos retorne.

Um clip-abraço :)Pos

Enviado: 09 Mai 2007 18:26
por MarcosV
Oi Pablo, obrigado por respoder minha mensagem.

Vou postar a função para vc dar uma olhada... no DOSPRINT... verifiquei que não retorna com o cursor... mas no retorno da WGET e ULTRAVNC.. vem o cursor... e não desativa por nada... tb tentei a dica q me passou... e nada tb... veja abaixo a função:

Function ChamaProg(cProg,cParam)
Local cTela:=SAVESCREEN(00,00,24,79), nCursor:=SETCURSOR()
Local lRet:=(.T.), cComando
IF !File(cProg)
Beep() ; Alert("Arquivo: '"+cProg+"', N„o Encontrado!;;Verifique!!!")
ELSE
SETCURSOR(0)
@ 24,82 SAY "" // <-- SUA DICA
DO WHILE (.T.)
cComando:=(cProg + Space(1) + IF(!Empty(cParam),cParam,"")+">NIL")
lExecuta:=SWPRUNCMD(cComando)
IF !lExecuta
IF ALERT("OCORREU UM ERRO !!! ;; Tentar Novamente?",{"Sim","N„o"})=="1" ; LOOP ; ENDIF
ENDIF
EXIT
ENDDO
SETCURSOR(0)
RESTSCREEN(00,00,24,79,cTela)
@ 24,82 SAY "" // <-- SUA DICA DENOVO
ENDIF
Return(lRet)

Enviado: 09 Mai 2007 18:39
por Pablo César
Marcos, que estranho mesmo que a ordem do SETCURSOR na qual indico abaixo, estivesse errada, não seria motivo para não aceitar o desaparecimento do cursor. Mas veja ao que me refiro, ora indicado no seu código-fonte:

@ 24,82 SAY "" // <-- SUA DICA
DO WHILE (.T.)
cComando:=(cProg + Space(1) + IF(!Empty(cParam),cParam,"")+">NIL")
lExecuta:=SWPRUNCMD(cComando)
IF !lExecuta
IF ALERT("OCORREU UM ERRO !!! ;; Tentar Novamente?",{"Sim","N„o"})=="1" ; LOOP ; ENDIF
ENDIF
EXIT
ENDDO
SETCURSOR(0) // Aqui não seria melhor colocá-la após o RESTSCREEN ??
RESTSCREEN(00,00,24,79,cTela)
@ 24,82 SAY "" // <-- SUA DICA DENOVO
ENDIF
Return(lRet)

Outra coisa, o cursor continua ativo, após o chamado da função ChamaProg ?. Ponha um INKEY(0) logo após onde chama essa função e nos diga se ainda aparece o cursor... E caso apareça, nos diga mais ou menos em que posição é mostrado.

E por desencargo... experimenta com SET CURSOR OFF.

Um clip-abraço :)Pos

Enviado: 09 Mai 2007 18:56
por Grings
Depois de executar o programa externo coloque:

SetCursor(1)
SetCursor(0)

No meu caso funcionou, mas não estava usando os mesmos programas que vc está.

Enviado: 10 Mai 2007 17:05
por MarcosV
Pablo, o cursor fica ativo apos a chamada da função: ChamaProg()... depois da linha da função: SWPRUNCMD(cComando)... e aparece em todas telas... tipo... se eu chamo a função ALERT()... Aparece depois do "OK" e em todas telas telas... como se tivesse o cursor ativado com a função sercursor(1)... e naum desativa por nada... só se fechar o programa e abrir novamente... acredito que poder ser algum problema por chamar programas windows... pois como disse anteriormente... o DOSPRINT vai beleza... mas o ULTRAVNC e WGET vem com o cursor de brinde... ja to ficando louco com esse problema... ah... tb usei a dica do nosso amigo Grings... tb SET CURSOR OFF... e nada tb.

Enviado: 10 Mai 2007 17:28
por Pablo César
Sabe o que você pode fazer Marcos ?. Eu acostumo executar dentro dos meus módulos os aplicativos GUI e dentro da minha .BAT eu chamo uma nova sessão com o comando START /W com este parâmetro, para esperar a execução do aplicativo GUI e retornar ao aplicativo DOS . O problema está que não retorna a aplicação DOS se ela estiver em modo TELA-CHEIA (isto em WIN98 ou 95). Mas em tela JANELADA, funciona beleza !. Esta é uma dos meus desesperos e que eu tanto encho ao Maligno para encontrar uma saída. Ahhh, mas lembrando se você está rodando em WINXP, utilizo a biblioteca do MALIGNO que retorna beleza mesmo estando em modo TELA-CHEIA ou JANELADO (mas só em WINXP). Então colega, aconselho que faça primeiramente um arquivo .BAT para que chame sua aplicação GUI, mas faça através do START /W WGET ou ULTRAVNC, e nos dê um retorno para saber se a dica é válida.

Um clip-abraço :)Pos

Enviado: 13 Mai 2007 16:28
por ANDRIL
Ola,


Solucionei este problema colocando assim:

cursor=setcursor()

... seus procedimentos ...

setcursor(0)
set curs off
set curs on
setcursor(cursor)


Até...

Enviado: 27 Jun 2007 10:25
por Pablo César
Caro Marcos,

Se você ainda não conseguiu evitar esse bendito cursor após execução do seu WGET (Testar Conexão Internet) com a minha ultima sugestão que seria para chamar esse aplicativo através de uma BATCH-FILE mas chamar-la com opção de START /W. Você testou com esta opção ?. Estranho deveria funcionar... senão eu teria para te indicar outro aplicativo que tem a mesma função de testar conexão que é o WAPI -URL2FILE: do Maligno que funciona muito bem. Porque você tinha mencionado que também estaria executado o tal DOSPRINT, mas este ultimo agora que você desenvolveu o USBPRINT ja deve ter resolvido essa questão... não ?

Retorne para sabermos se deram certo as sugestões oferecidas e para que srivam de experiência aos outros colegas aqui do FORUM.

Enviado: 15 Out 2007 18:26
por Pablo César
Pelo visto você anda muito ocupado. Espero que seja isso mesmo !

Aquele projeto USBPRINT eu ainda não esquecí... espero que pronto nos dê novidades suas e do projeto.