Manwë Súlimo Postado Dezembro 14, 2004 Denunciar Share Postado Dezembro 14, 2004 Pessoal, como que eu faço p/ que o código espere uma função terminar para continuar???alguém sabe me ajudar???até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PiGmEu Postado Dezembro 14, 2004 Denunciar Share Postado Dezembro 14, 2004 como assim brother.. não entendi.. []´s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Dezembro 14, 2004 Autor Denunciar Share Postado Dezembro 14, 2004 tipo eu tenho uma função p/ baixar um arquivo, exemplo: baixar "c:\teste.exe","http://www.seila.com.br/arquivo.exe" shell "c:\teste.exe" ai a função baixa o arquivo do segundo parametro e salvo com o nome do primeiro parametro, o problema é que antes de baixar o arquivo, o código já executa o comando shell.. e dá a mensagem que o arquivo não foi encontrado...é ele nào foi encontrado por que ainda não foi baixado totalmente, eu queria que ele só executasse o comando shell depois que o função baixar estivesse terminada.... em outras palavras, já tivesse baixado todo o arquivo...como faz isso?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 18, 2004 Denunciar Share Postado Dezembro 18, 2004 Normalmente o fluxo de execução só segue após o término de uma função (há quem possa dizer que a função Shell() é uma exceção, porém não é). No entanto, o que existe na função Baixar pode fazer com que a execução continue antes de baixar o arquivo (mas, note que a função de fato terminou). O que existe nela? O ideal seria mostrar o código da função.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Dezembro 20, 2004 Autor Denunciar Share Postado Dezembro 20, 2004 Function baixar(LocalArquivo As String, LocalURLArquivo As String) As Boolean baixar = False On Error GoTo Baixa_erro Dim bt() As Byte Open LocalArquivo For Binary Access Write As #1 bt() = form_principal.baixa.OpenURL(LocalURLArquivo, icByteArray) Put #1, , bt() Close #1 baixar = True Exit Function Baixa_erro: MsgBox "Não foi possivel verificar se há atualizações pendentes." _ & vbCrLf & "Verifique sua conexão com a internet!", vbCritical, "Falha ao verificar" baixar = False Close #1 End Function Public Sub Verifica() n = FreeFile Open App.Path & "\versao.txt" For Output As #n Print #n, App.Major & App.Minor & App.Revision Close #n Dim versao As String Dim programa As String If baixar(App.Path & "\atual.txt", "http://fredericobe.sites.uol.com.br/cotr/versao.cotr") Then n = FreeFile Open App.Path & "\atual.txt" For Input As #n Line Input #n, versao Close #n n = FreeFile Open App.Path & "\versao.txt" For Input As #n Line Input #n, programa Close #n If CInt(versao) > CInt(programa) Then o que = MsgBox("Exite uma versão mais recente deste programa diponivel." _ & vbCrLf & "Deseja instalá-la agora? ", vbYesNo + vbInformation, "Atualização disponível!") If o que = vbYes Then baixar App.Path & "\atualiza.exe", "http://site.com.br/arquivos/atualiza.exe" Shell App.Path & "\atualiza.exe" Else MsgBox "É aconcelhavel que você esteja sempre com a versão mais atual do Programa." _ & vbCrLf & "Não esqueça de atualizar o mais rápido possivel!", vbInformation, "Atualização" End If End If End If End Sub assim tá o código...e na hora de dar o shell ele fala que o arquivo não existe.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 25, 2004 Denunciar Share Postado Dezembro 25, 2004 Sim, de fato o componente Inet não espera o arquivo terminar de ser baixado. Entretanto, acho que você pode fazer isso olhando a propriedade StillExecuting do mesmo.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Manwë Súlimo
Pessoal, como que eu faço p/ que o código espere uma função terminar para continuar???
alguém sabe me ajudar???
até mais
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.