Página 1 de 2

ACESSO A INTERNET

Enviado: 10 Mar 2007 15:20
por Pablo César
Alguem sabe como é possível saber se o computador tem acesso a INTERNET ?.

Eu uso desta forma quando é WIN98:

Código: Selecionar todos

PING www.google.com | FIND "Resposta de " > NUL
IF NOT ERRORLEVEL 1 GOTO CONECTA
IF ERRORLEVEL 1 GOTO INOFF
Mas quando se trata de WIN XP o caracter de direcionamento ">" não é executado. E isto serviria para não mostrar nada na tela e nao ensujar a tela com a linha de comando. E no WIN VISTA não dá o seguinte erro: ACESSO NEGADO, por causa do caracter direcionador.

Alguém conhece um utilitário que detecte se há conexão com INTERNET ?

Um clip-abraço

Diferenças entre WIN XP e 98

Enviado: 10 Mar 2007 16:29
por Pablo César
Encontrei uma saída que resultou mais rápida e simples:

ARQUIVO.BAT

Código: Selecionar todos

PING www.google.com.br -n 1 2>nul | FIND "Resposta de " >NUL
IF NOT ERRORLEVEL 1 GOTO CONECTA 
IF ERRORLEVEL 1 GOTO INOFF
O 2 na frente do sinal > permitiu que pudesse ser lido pelo find e não ser exibido resultado algum. E o parâmetro -n 1, faz que só um pacote seja mandado, isto dá mais rapidez no retorno.

Mas se alguem souber de um utilitário que seja mais eficiente e rápido, favor aqui postar.

Um clip-abraço :)Pos

Quem disse que pelo Clipper não dá pra mandar arquivos à INTERNET ? (Na verdade é através do FTP do proprio WINDOWS)

Enviado: 10 Mar 2007 17:18
por Clipper
Veja um exemplo parecido com o seu só que em Clipper

https://pctoledo.org/forum/viewtopic.php?t=5347

Até logo.

Marcelo

DIFERENÇAS WINDOWS

Enviado: 10 Mar 2007 17:30
por Pablo César
Pois é, caro colega ! acabei de ver este tópico em FONTES. Mas tem um porém. De qualque modo o sinal de direcionamento ">" tem que ser tratado de acordo a versão do WINDOWS. No WINDOWS VISTA, ja acho que não irá funcionar. Por isso, que de agora em mais, eu crio uma variável de ambiente que informa a versão do WINDOWS instalado naquela máquina. Baseio-me na criação de uma arquivo temporário no C:\WINDOWS\VERWIN.TXT. Assim se muda o WINDOWS, normalmente esse arqui deixará de existir (no caso de nova formatação). è importante este nosso intercambio, pois assim nos preparamos para os diversos WINDOWS.

Um clip-abraço, valeu :)Pos

Enviado: 10 Mar 2007 23:15
por Clipper
A mesma função sem o uso do >, usa um programa externo chamado WGET (eu sabia que um dia ele ia servir pra alguma coisa)

Código: Selecionar todos

*------------------*
// Marcelo Mendes //
*------------------*
// Funcao para testar se a uma conexao com a internet ativa
// Retorna .T. se houver conexao ou .F. se nao houver
PARAM URL
CLS
IF URL=NIL
   @ 02,00 SAY "Faltando a URL a pesquisar..."
   INKEY(3)
   RETURN(.F.)
ENDIF   

COMANDO="WGET "+ALLTRIM(LOWER(URL))+" -oRETORNO.PIN"
RUN &COMANDO
DBCREATE("RETORNO.DBF",{{"RET","C",80,0}})
USE RETORNO
DBAPPEND()
APPEND FROM RETORNO.PIN SDF
LOCATE FOR "CONNECTED!"$UPPER(RET)
IF EOF()
   @ 10,00 SAY "Desconectado..."
   USE
   FERASE("RETORNO.DBF")
   FERASE("RETORNO.PIN")
   DELHTM()
   RETURN(.F.)  // Desconectado a internet
ELSE
   @ 10,00 SAY "Conectado..."
   USE
   FERASE("RETORNO.DBF")
   FERASE("RETORNO.PIN")
   DELHTM()
   RETURN(.T.)  // Conectado da internet
ENDIF

*-----------------*
 FUNCTION DELHTM()
*-----------------*
AEVAL(DIRECTORY("*.HTM"),{|AFILE|FERASE(AFILE[1])})
AEVAL(DIRECTORY("INDEX.*"),{|AFILE|FERASE(AFILE[1])})
RETURN(.T.)
Para baixar tudo, inclusive o WGET, clique no link abaixo :

www.phrep.com.br/pinga2.zip

Até logo.

Marcelo

Enviado: 11 Mar 2007 00:16
por Clipper
Uma versão mais enxuta, sem uso de arquivo DBF mas utilizando a lib Clipon.

Código: Selecionar todos

*------------------*
// Marcelo Mendes //
*------------------*
// Funcao para testar se a uma conexao com a internet ativa
// Retorna .T. se houver conexao ou .F. se nao houver
PRIVATE HAND,URL
PARAM URL
CLS
IF URL=NIL
   @ 02,00 SAY "Faltando a URL a pesquisar..."
   INKEY(3)
   RETURN(.F.)
ENDIF   
@ 02,00 SAY IF(CHKCONECT(),"Conectado a intenet !","Sem conexao !")
DELHTM()
FCLOSE(HAND)
RETURN

*--------------------*
 FUNCTION CHKCONECT()
*--------------------*
COMANDO="WGET "+ALLTRIM(LOWER(URL))+" -oRETORNO.HTM"
RUN &COMANDO
HAND=FOPEN("RETORNO.HTM")
RETURN(IF(C_FILESTR(HAND,"Connected!",.F.)>=0,.T.,.F.))

*-----------------*
 FUNCTION DELHTM()
*-----------------*
AEVAL(DIRECTORY("*.HTM"),{|AFILE|FERASE(AFILE[1])})
AEVAL(DIRECTORY("INDEX.*"),{|AFILE|FERASE(AFILE[1])})
RETURN(.T.)

** Essa funcao serve para suprimir uma mensagem
** de erro da CLIPON
*---------------------*
 FUNCTION CLIPPER501()
*---------------------*
RETURN(.T.)
www.phrep.com.br/pinga3.zip

Quem não tiver a Clipon baixe no link abaixo :

www.phrep.com.br/clipon.zip

Ps. Antes que pergutem. Sim, ela funciona em modo protegido.

Até logo.

Marcelo

WGET

Enviado: 11 Mar 2007 11:43
por Pablo César
Muito interessante, Marcelo. O aplicativo também faz downloads. Talvez se inibisse essa opção de fazer download da página e apenas fazer apenas uma checagem só e retornar, iria diminuir bastante o tempo de execução.

É uma ótima ferramenta e boa solução para evitar o uso do sinal de direcionamento. Gostei e vou intentar encontar um switch que diminua o tempo de execução.

Obrigado Marcelo,

Um clip-abraço :)Pos

Enviado: 11 Mar 2007 13:03
por Clipper
Pelo que pesquisei e testei não tem nenhuma opção de apenas testar se há conexão. Neste caso eu recomendo fazer a busca em um site com página inicial bem leve, fiz o teste com algumas, o www.google.com.br fica bem rápido, já outros como uol, baixaki nem tanto. Embora eu acho que isso seja o menos importante, pois ninguém vai usar essa função o tempo todo.

Fiz uma nova versão, mais enxuta e sem uso de lib externa.

Essa não vou postar o link, creio que não precisa.

Código: Selecionar todos

*------------------*
// Marcelo Mendes //
*------------------*
// Funcao para testar se a uma conexao com a internet ativa
// Retorna .T. se houver conexao ou .F. se nao houver
PARAM URL
CLS
IF URL=NIL
   @ 02,00 SAY "Faltando a URL a pesquisar..."
   INKEY(3)
   RETURN(.F.)
ENDIF   
INI=LEN(DIRECTORY("*.*"))
COMANDO="WGET -q -nv -nd -nH -t1 "+ALLTRIM(LOWER(URL))
RUN &COMANDO
FIN=LEN(DIRECTORY("*.*"))
@ 02,00 SAY IF(FIN>INI,"Conectado a intenet !","Sem conexao !")
AEVAL(DIRECTORY("*.HTM"),{|AFILE|FERASE(AFILE[1])})
RETURN
Até logo.

Marcelo

Enviado: 11 Mar 2007 14:38
por Maligno
Como alternativa ao WGet, tem o U2F, que pode baixar um arquivo para a máquina do cliente. É um programa pequeno (26KB) e se você tiver um arquivo de 1 byte, poderá baixá-lo para a máquina rapidamente. Se o arquivo vier, há uma conexão. É gambiarra do mesmo jeito, mas acho meia enxuta. :)
Esse programa, caso interesse, está disponível na minha página.

[]'s
Maligno
http://www.buzinello.com/prg

Enviado: 11 Mar 2007 15:58
por Pablo César
Ficou bom. O único temor, que poderá sair do ar aquela página. Eu achei colocar uma simples e comum como:

U2F http://www.google.com.br/about.html teste.txt

Funcionou bem rápido. Obrigado, Maligno

Um clip-abraço :)Pos

Enviado: 11 Mar 2007 16:08
por Clipper
Tentei aqui com o U2F de várias maneiras e com várias url´s e não consegui nenhum retorno.

Tentei como pelo menos umas 20 maneiras e url´s diferentes e nada.

O que pode ser ?

Até logo.

Marcelo

Enviado: 11 Mar 2007 16:22
por Pablo César
Eu tentei como mostra na minha mensagem anterior e deu certinho. Se bem que testei em WIN98. Tem que ver se o arquivo html existe ou qualquer outro arquivo que esteja no endereço (creio eu que é esse o conceito).

Enviado: 11 Mar 2007 16:22
por Maligno
Clipper escreveu:Tentei como pelo menos umas 20 maneiras e url´s diferentes e nada.
Conforme diz na descrição, o U2F é pequeno justamente porque utiliza um "moniker" do IE. Logo, você precisa ter o IE instalado. Você tem?
Se tiver firewall, libere o programa.

Repare na sintaxe também: U2F <url_origem> <arq_destino>.

[]'s
Maligno
http://www.buzinello.com/prg

Enviado: 11 Mar 2007 18:06
por Clipper
Sim, tenho o IE instalado, não utilizo firewall, mas uso roteador.

Meu Windows é XP Professional.

Até logo.

Marcelo

Enviado: 11 Mar 2007 18:33
por Maligno
Clipper escreveu:Sim, tenho o IE instalado, não utilizo firewall, mas uso roteador.

Meu Windows é XP Professional.
Comigo funciona perfeitamente e eu uso o XP Pro Corp. Com você deveria funcionar também. Só consigo pensar que você está errando na sintaxe. Mas imagino que você já deve ter verificado isso.

[]'s
Maligno
http://www.buzinello.com/prg