APRESENTAR GIF ENQUANTO SHELL (ARQUIVO BAT) RODA

 Tópico anterior Próximo tópico Novo tópico

APRESENTAR GIF ENQUANTO SHELL (ARQUIVO BAT) RODA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484566 - 20/09/2018 15:49:21

SUDISTANO
CURITIBA
Cadast. em:Setembro/2018


No cdigo abaixo apresentado o GIF (que inseri via PictureBox) enquanto o BAT roda em background.

Porm tenho o problema de que sempre vai rodar o GIF apenas uma vez independente do tempo de execuo do BAT. Procurei algumas solues mas faziam que meu GIF ficasse travado at o termino de execuo do BAT.

Ento a lgica que busco simples, preciso que fique na tela o GIF at que conclua a execuo do BAT. Como eu posso fazer isso? Se puder responder com exemplo de cdigo agradeo pois no tenho experiencia com VB.NET.

  Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
        Timer1.Start()
        Dim ofd As New OpenFileDialog()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ProgressBar1.Increment(3)
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            Call Shell([]C:\config.bat[], vbHide)
            Timer1.Stop()
            Me.Hide()
        End If
    End Sub
End Class




Resposta escolhida #484567 - 20/09/2018 15:58:52

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Voc pode utilizar um backgroundworker para esta finalidade.
Usar um timer de longe a pior soluo.



#484568 - 20/09/2018 16:00:25

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Ah, s complementando, para usar o backgroundworker voc deve fazer uso de delegates tambm.




#484574 - 21/09/2018 09:50:44

TUNUSAT
SAMPA
Cadast. em:Dezembro/2003


SUDISTANO,

    Acredito que voc pode fazer um processamento paralelo com []Thread[]. Exemplos:

========================================
VB.NET -  Trabalhando com Threads

Uma aplicao pode ter mais de uma thread ao mesmo tempo ou seja podemos estar fazendo vrias coisas ao mesmo tempo , quer um exemplo? O sistema operacional Windows. A barra de tarefas exibe os processos que esto sendo executados simultaneamente.

http://www.macoratti.net/vbn_thd1.htm
========================================
Trabalhando com MultiThreads no VB.NET

O termo MultiThread define a capacidade de se executar mltiplos processos ao mesmo tempo de forma independente. Ou seja voc executa duas tarefas (assobiar e chupar cana) ao mesmo tempo e uma tarefa no depende da outra para ser executada.

http://www.macoratti.net/vbn_thrd.htm
========================================
Multithreading em ao com VB .NET

UMA INTRODUO SIMPLES E DIVERTIDA CRIAO DE PROGRAMAS MULTITHREAD

https://msdn.microsoft.com/pt-br/library/cc580613.aspx?f=255&MSPPError=-2147217396
========================================
Artigo
Dicas .NET - Criando e destruindo Threads no VB.NET

https://www.devmedia.com.br/dicas-net-criando-e-destruindo-threads-no-vb-net/1874
========================================

     Mas pode fazer isso tambm (no exatamente []Thread[])... Exemplo:

========================================
MAQUINA DE ESTADOS VB.NET MODULE

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9326
========================================
MAQUINA DE ESTADOS VB.NET CLASSE

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9448
========================================

[][]s,
Tunusat.

Haja, pois, o que houver, ampliem-se obstculos, agigantem-se problemas, intensifiquem-se lutas ou se agravem provaes, trabalha sempre no bem de todos, porque, trabalhando na Seara do Bem, podes conservar a certeza de que Deus te sustentar. Emmanuel.

#484576 - 21/09/2018 10:48:04

SUDISTANO
CURITIBA
Cadast. em:Setembro/2018


Citação:
:
SUDISTANO,

    Acredito que voc pode fazer um processamento paralelo com []Thread[]. Exemplos:

========================================
VB.NET -  Trabalhando com Threads

Uma aplicao pode ter mais de uma thread ao mesmo tempo ou seja podemos estar fazendo vrias coisas ao mesmo tempo , quer um exemplo? O sistema operacional Windows. A barra de tarefas exibe os processos que esto sendo executados simultaneamente.

http://www.macoratti.net/vbn_thd1.htm
========================================
Trabalhando com MultiThreads no VB.NET

O termo MultiThread define a capacidade de se executar mltiplos processos ao mesmo tempo de forma independente. Ou seja voc executa duas tarefas (assobiar e chupar cana) ao mesmo tempo e uma tarefa no depende da outra para ser executada.

http://www.macoratti.net/vbn_thrd.htm
========================================
Multithreading em ao com VB .NET

UMA INTRODUO SIMPLES E DIVERTIDA CRIAO DE PROGRAMAS MULTITHREAD

https://msdn.microsoft.com/pt-br/library/cc580613.aspx?f=255&MSPPError=-2147217396
========================================
Artigo
Dicas .NET - Criando e destruindo Threads no VB.NET

https://www.devmedia.com.br/dicas-net-criando-e-destruindo-threads-no-vb-net/1874
========================================

     Mas pode fazer isso tambm (no exatamente []Thread[])... Exemplo:

========================================
MAQUINA DE ESTADOS VB.NET MODULE

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9326
========================================
MAQUINA DE ESTADOS VB.NET CLASSE

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9448
========================================

[][]s,
Tunusat.


Obrigado!
Fiz ento com Thread, porm agora meu .BAT executado mas meu GIF (PictureBox1) fica aberto mesmo aps a execuo. Como eu posso corrigir isso?

Imports System.Threading
Public Class Form1
    Private trd As Thread
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
        trd = New Thread(AddressOf ThreadTask)
        trd.IsBackground = True
        trd.Start()
    End Sub
    Private Sub ThreadTask()
        Call Shell([]C:\tasy.bat[], vbHide)
    End Sub
End Class




#484577 - 21/09/2018 10:58:44

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Citação:
  Imports System.Threading
Public Class Form1
    Private trd As Thread
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
        trd = New Thread(AddressOf ThreadTask)
        trd.IsBackground = True
        trd.Start()
    End Sub
    Private Sub ThreadTask()
        Call Shell([]C:\tasy.bat[], vbHide)
    End Sub
End Class


Por este motivo que utilizar o backgroundworker melhor, pois com ele voc pode criar os eventos de incio e fim, alm de exibir o progresso.






#484578 - 21/09/2018 11:04:36

SUDISTANO
CURITIBA
Cadast. em:Setembro/2018


Citação:
:
  Imports System.Threading
Public Class Form1
    Private trd As Thread
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
        trd = New Thread(AddressOf ThreadTask)
        trd.IsBackground = True
        trd.Start()
    End Sub
    Private Sub ThreadTask()
        Call Shell([]C:    asy.bat[], vbHide)
    End Sub
End Class

Por este motivo que utilizar o backgroundworker melhor, pois com ele voc pode criar os eventos de incio e fim, alm de exibir o progresso.




O problema que no tenho experiencia com VB.NET, com os exemplos de Thread consegui fazer. Tem algum exemplo que eu consiga aproveitar para essa necessidade?



#484579 - 21/09/2018 11:09:46

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Citação:
  O problema que no tenho experiencia com VB.NET, com os exemplos de Thread consegui fazer. Tem algum exemplo que eu consiga aproveitar para essa necessidade?  


Esta uma boa oportunidade para aprender!

http://www.macoratti.net/vbn5_ept.htm




#484580 - 21/09/2018 11:15:42

TUNUSAT
SAMPA
Cadast. em:Dezembro/2003


Última edição em 21/09/2018 11:17:29 por TUNUSAT

SUDISTANO,

   Desculpe... voc tentou um [].Abort()[]?

======================================
...
Destruindo uma Thread

O mtodo Abort chamado para destruir uma thread, ou seja, tir-la de funcionamento permanentemente. Antes de chamar o mtodo Abort, habilite o mtodo IsAlive para saber se a thread ainda est em funcionamento:

If oThread1.IsAlive Then

  Thread1.Abort()

End If


https://www.devmedia.com.br/dicas-net-criando-e-destruindo-threads-no-vb-net/1874
======================================

[][]s,
Tunusat


Haja, pois, o que houver, ampliem-se obstculos, agigantem-se problemas, intensifiquem-se lutas ou se agravem provaes, trabalha sempre no bem de todos, porque, trabalhando na Seara do Bem, podes conservar a certeza de que Deus te sustentar. Emmanuel.

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por SUDISTANO em 24/09/2018 08:14:57