Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fredericoafd

Nao sei usar o ping no VB

Recommended Posts

Olá, fiz um programinha para testar se uma máquina está na rede usando um arquivo .bat para pingar e armazenar os dados em um txt que será lido no BV, só que quando o arquivo é executado pelo vb (usando o código "Shell c:\xxx") ele não grava nada no txt, mas quando eu clico no arquibo .bat ele grava normalmente no txt. O que pode ser??Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que reparar que a execução de um programa via função Shell() não interrompe a execução do seu programa. Ou seja, as linhas de código subsequentes a chamada de Shell serão executadas *imediatamente* após esta. A próxima linha de código *não* vai esperar o final do que quer que Shell() tenha chamado. E, como você sabe, o ping leva algum tempo para ser efetuado. Portanto, é provável que o programa esteja tentando ler o arquivo texto antes que o mesmo tenha sido devidamente gravado (ou seja, enquanto o ping ainda não terminou).

Se for este o caso, dê uma olhada neste tutorial: http://www.desenvolvedores.net/modules.php...=article&sid=44

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade funciona sim. O problema é que a janela do prompt demora um pouquinho para aparecer e neste pouquinho a função não a encontra e considere que a mesma já tenha sido fechada. Um Sleep de 2 segundos resolveu o caso aqui. Declare a seguinte função em um módulo:

 

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Depois utilize este código:

 

Dim v_HWND_Instance As LongDim v_HInstance As Longn = FreeFile()Open "d:\teste.bat" For Output As #nPrint #n, "ping www.yahoo.com.br > teste.txt"Close #nv_HInstance = Shell("d:\teste.bat", vbMaximizedFocus)Sleep 2000Do	v_HWND_Instance = InstanceToHwnd(v_HInstance)	DoEventsLoop Until v_HWND_Instance = 0MsgBox "O ping terminou.", vbInformation, "Ping"

Troque os caminhos dos arquivos bat e txt se for o caso. Veja se dá certo aí.

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

30/04/2006 - 23:48

Edicleo voce postou em um topico que nao tinha moviemnto desde o inicio de 2006 la se vao quase 3 anos

 

nao precisa fazer isso caso queira colaborar o faça em topicos atuais

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.