MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Provocar pausa no código enquanto pasta é compactada

    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 16:58

    Amigos tenho um procedimento no qual é chamada uma função para compactar uma determinada pasta contendo diversas fotos.

    O que ocorre é que quando o código inicia a compactação, o mesmo dá proseguimento.
    Ao final do código tenho comando para copiar a pasta compactada para outra pasta.
    Se a pasta contiver muitos arquivos a compactação vai demorar, caso isto ocorra o FileCopy gera erro de acesso negado pois a .rar ainda está sento utilizado.
    Como provocar uma pausa no código para que o mesmo prossiga após o término da compactação? 

    Procedimento que chama a função:

            '---------------------------------------------------------------------------
            'Se a caixa de seleção para compactar fotos estiver marcada executa a função
            '---------------------------------------------------------------------------
            If Me.SelFotos.Value = -1 Then
                Me.CompactaFotos
            End If


    Função que compacta a pasta:


    '---------------------------------------------------------------------------------------
    ' Procedure     : CompactaFotos
    ' Author        : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum         : Fórum Máximo Access -  http://maximoaccess.forumeiros.com/
    ' Date          : 11/09/2013
    ' Comentários   : Compacta a pasta Fotos dos detentos
    '---------------------------------------------------------------------------------------
    Function CompactaFotos() As Boolean
    Dim Compri As String
    Dim StrOrigem As String
    StrOrigem = CurrentProject.path & "\Fotos\Fotos.rar"
    Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & StrOrigem & Chr(34) & " " & Chr(34) & CurrentProject.path & "\Fotos" & Chr(34), vbHide)
    End Function


    Cumprimentos.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Avelino Sampaio 11/9/2013, 17:08

    Olá!

    No formulário frmBackup do meu aplicativo exemplo Maestro pode ter a resposta. Veja no código, que utilizo o FileLen().

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  giba_ 11/9/2013, 18:32

    avelino boa tarde!

    teria como vc postar o código e explicar a rotina, tenho apenas o access 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 19:04

    Boas Avelino.. Até tentei.. Veja ai a parte em vermelho e o que fiz de errado.


    Private Sub Form_Timer()
    '---------------------------------------------------------------------------
    'Este código se encontra no evento timer para alimentar a barra de progresso
    '---------------------------------------------------------------------------
    On Error GoTo TrataErro
    Dim MSG As String

    Evento = Evento + 1
    Select Case Evento
        Case 1
            '-------------------------------------------------------------------------
            'Desabilita os botões enquanto a cópia estiver sendo realizada
            'Divide a barra de progresso, que tem um comprimento de 11cm, em 8 pedaços
            '-------------------------------------------------------------------------
            Me!cx1.Visible = True
            Me!btFoco.SetFocus
            Me!btIniciarBackup.Enabled = False
            Escala = (11.2 * 567) / 8
            Me!cx1.width = Escala
        Case 2
            Me!cx1.width = Escala * 2
            Set objFS = CreateObject("Scripting.FileSystemObject")
            Me!Status.Caption = "Verificando Base de Dados..."
        Case 3
            Me!Status.Caption = "Copiando Base de Dados..."
            Me!cx1.width = Escala * 3
        Case 4
            '----------------------------------------------------------------------------
            'Inicia o processo de cópia simples da base de dados para o destino indicado.
            'Aqui a barra de progresso fica parada até a cópia ser concluída
            '----------------------------------------------------------------------------
            objFS.CopyFile Me!txOrigem, Me!txDestino
        Case 5
            '----------------------------------------------
            'Após a conclusão da cópia o código prossegue
            '----------------------------------------------
            Me!Status.Caption = "Compactando Base de Dados..."
            Me!cx1.width = Escala * 4
        Case 6
            Dim booResultado As Boolean
            '---------------------------------------------------------------------------------
            'Se a sua base de dados contiver uma senha de acesso, o método compactar e reparar
            'irá solicitá-la.
            '
            'A função do SendKeys é passar a senha no processo sem a intervenção do usuário.
            '
            'A função fncProtegido verifica se a base de dados possui senha e então permite
            'o uso do SendKeys.
            '
            'A função fncCapturSenha captura a senha da tabela vinculada
            '---------------------------------------------------------------------------------
            If fncProtegido = True Then
                Dim objws As Object
                Set objws = CreateObject("wscript.shell")
                'objws.SendKeys fncCapturaSenha, True  '"a1234"
                objws.SendKeys SenhaBD
                objws.SendKeys "{ENTER}"
            End If
            '-----------------------------------------------------------------------
            'Observe que está sendo compactado e reparado a copia que foi gerada
            'pelo objfs.CopyFile no destino.
            '
            'É gerado então um outro arquivo, devidamente compactado e reparado, no
            'mesmo local de destino.
            '-----------------------------------------------------------------------
            DestinoNovo = Replace(Me!txDestino, "-", "-c")
            booResultado = Application.CompactRepair(Me!txDestino, DestinoNovo, True)
            '-----------------------------------------------------------------------------
            'O arquivo que foi copiado para o destino, pelo objfs.CopyFile, será excluído,
            'pois só nos interessa o que foi compactado e reparado.
            '-----------------------------------------------------------------------------
            If booResultado = True Then FileSystem.Kill Me!txDestino
            Me!cx1.width = Escala * 5
            Set objws = Nothing
        Case 7
            '-------------------------------------------------
            'Executa o winrar oculto se este tiver habilitado
            '--------------------------------------------------
            If Me!selWinrar = True Then
                Me!Status.Caption = "Compactando com o Winrar..."
                Dim CompriBackup
                CompriBackup = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & Replace(DestinoNovo, ".accdb", "") & ".rar" & Chr(34) & " " & Chr(34) & DestinoNovo & Chr(34), vbHide)
            End If
            '---------------------------------------------------------------------------
            'Se a caixa de seleção para compactar fotos estiver marcada executa a função
            '---------------------------------------------------------------------------
            If Me.SelFotos.Value = -1 Then
                Dim strOrigem As String
                strOrigem = CurrentProject.path & "\Fotos\Fotos.rar"
                Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & strOrigem & Chr(34) & " " & Chr(34) & CurrentProject.path & "\Fotos" & Chr(34), vbHide)
                If FileSystem.FileLen(strOrigem) = 0 Then
                    Evento = 7
                    If Me!cx1.width < (11.2 * 567) Then intCont = intCont + 1
                    Me!cx1.width = (Escala * 7) + (15 * intCont)
                End If
    '            Me.CompactaFotos
    'Volta:
    '            If booCompacta = True Then GoTo Volta
            End If
            Me!cx1.width = Escala * 6
        Case 8
            If Me!selWinrar = True Then
                '--------------------------------------------------------------------------
                'Enquanto o winrar não completar a tarefa de compactação, o comprimento
                'do arquivo gerado fica em zero. Verifico este comprimento com o FileLen.
                'A barra de progresso vai crescendo gradativamente enquanto o winrar não
                'concluir a tarefa.
                '--------------------------------------------------------------------------
                If FileSystem.FileLen((Replace(DestinoNovo, ".accdb", "") & ".rar ")) = 0 Then
                    Evento = 7
                    If Me!cx1.width < (11.2 * 567) Then intCont = intCont + 1
                    Me!cx1.width = (Escala * 7) + (15 * intCont)
                Else
                    '----------------------------------------------------
                    'Deleto o arquivo que não foi compactado pelo WinRAR
                    '----------------------------------------------------
                    FileSystem.Kill DestinoNovo
                    Me!Status.Caption = "Backup concluído..."
                    If Me.chkPen = -1 Then Call fncDestinoBackupPen
                    Screen.MousePointer = 0
                    Me!cx1.width = Escala * 8
                    Me.TimerInterval = 3000
                End If
            Else
                Me!Status.Caption = "Backup concluído..."
                If Me.chkPen = -1 Then Call fncDestinoBackupPen
                Screen.MousePointer = 0
                Me!cx1.width = Escala * 8
                Me.TimerInterval = 3000
                'Caso esteja selecionado a chkbox DropBopx... envia copia do bakup para o mesmo
                If Me.SelDrop.Value = -1 Then
                    Me.CopiaDrop
                End If
               
               
            End If
        Case 9
            Set objFS = Nothing
            '-------------------------------------------------------------------------------------
            'Caso tenha ocorrido uma correção da base de dados, pelo método compactar e reparar
            'é gerado um arquilo de log.
            '
            'Então abre um comunicado, para chamada urgente do adminitrador, que deverá verificar
            'e corrigir a base de dados em uso.
            '-------------------------------------------------------------------------------------
            If Len(Dir(Left(Me!txDestino, InStrRev(Me!txDestino, "\")) & "*.log", vbArchive) & "") > 0 Then
                MsgBox "Foi detectado problemas no arquivo de backup." & vbCrLf & _
                vbCrLf & "Entre em contato imediatamente com o administrador do Banco de Dados", vbCritical, "Aviso"
            End If
            Me.TimerInterval = 0
            Evento = 0
    End Select


    Sair:
        If Me.TimerInterval = 0 Then DoCmd.Close acDefault
        Exit Sub
    TrataErro:
        MsgBox err.Number & " - " & err.Description, vbInformation, "Aviso"
        Evento = 0: Screen.MousePointer = 0: Me.TimerInterval = 0
        Resume Sair
    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 19:34

    O Exemplo Funcional Avelino, caso tenha um tempinho veja o que está errado.

    Cumprimentos.

    https://dl.dropboxusercontent.com/u/26441349/Backup%20%282%29.rar
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 20:02

    A questão creio do:  FileSystem.FileLen(strOrigem) = 0 Then
    creio seja porque ao adicionar a primeira foto o zip já é criado, portanto o comprimento será maior que 0 pois o zip já existe. As demais fotos são adicionadas paulatinamente ao mesmo. Não sei se estou correto no raciocínio

    Resolvi da seguinte maneira:

    Criei uma função que verifica a quantidade de arquivos na pasta retornando na mesma o seu número:

    '---------------------------------------------------------------------------------------
    ' Procedure     : VerificaQtdFotos
    ' Author        : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum         : Fórum Máximo Access -  http://maximoaccess.forumeiros.com/
    ' Date          : 11/09/2013
    ' Comentários   : Verifica a quantidade de arquivos em uma paste e retorna o mesmo
    '                 através da função
    '---------------------------------------------------------------------------------------
    Function VerificaQtdFotos() As Long
    Dim nCount As Long
    Dim FSO, Diretorio As String, Pasta, Arquivo
    Diretorio = CurrentProject.path & "\Fotos\"

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Pasta = FSO.GetFolder(Diretorio)
    For Each Arquivo In Pasta.Files
        'Incrementa o contador para o número de fotos da pasta
        nCount = nCount + 1
    Next
    VerificaQtdFotos = nCount
    MsgBox nCount
    Set FSO = Nothing: Set Pasta = Nothing
    End Function


    Ao chamar a função CompactaFotos, compacta a pasta com as mesmas, chamo a função de contage de arquivos e provoco uma pausa
    mulitplicando o número de arquivos pela quantidade de segundos necessário a compactação de uma foto
    Obs. as fotos no meu sistema é tirado por uma web cam  implementada no mesmo e possuim em média o mesmo tamanho.


    '---------------------------------------------------------------------------------------
    ' Procedure     : CompactaFotos
    ' Author        : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum         : Fórum Máximo Access -  http://maximoaccess.forumeiros.com/
    ' Date          : 11/09/2013
    ' Comentários   : Compacta a pasta Fotos dos detentos
    '---------------------------------------------------------------------------------------
    Function CompactaFotos() As Boolean
    Dim nPause As Long
    Dim Compri As String
    Dim StrOrigem As String
    StrOrigem = CurrentProject.path & "\Fotos\Fotos.rar"
    Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & StrOrigem & Chr(34) & " " & Chr(34) & CurrentProject.path & "\Fotos" & Chr(34), vbHide)
    nPause = VerificaQtdFotos * 2
    Pause (nPause)
    End Function


    Não sei se é a solução apropriada.. porém resolveu o meu problema
    Caro avelino fique a vontade para comentar o erro na função com o FileSystem. Se funcionar creio será melhor.

    Obrigado.
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 21:14

    Boas Avelino Estive pensando.. Caso ocorra alguma lentidão no windows.. esta forma que fiz poderá falhar..
    No entanto pensei em uma solução que achei bem profissional

    Verificar se o programa ainda está aberto:

    Private Sub Comando36_Click()
    ProgramaAberto = FindWindow(0, "WinRar")

    If ProgramaAberto <> 0 Then
        MsgBox "programa esta ligado"
    Else
        MsgBox "O programa n esta ligado"
    End If
    End Sub

    O que acha?


    cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 11/9/2013, 22:01

    Realmente.. a função resolveu completamente a minha necessidade:

    Nas declarações do módulo:
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As String) As Long


    Função:

    Function ProgramaAtivo(NomePrg As String) As Boolean
    If FindWindow(0, NomePrg) <> 0 Then
        ProgramaAtivo = True
    Else
        ProgramaAtivo = False
    End If
    End Function



    E ao chamar a função vou provocando pausas de 5 segundos a cada verificação caso o winRar esteja aberto:


                Dim strOrigem As String
                'Me.CompactaFotos
                shell "cmd /c taskkill -f -im WinRar.exe *32", vbHide
                strOrigem = CurrentProject.path & "\Fotos\Fotos.rar"
                Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & strOrigem & Chr(34) & " " & Chr(34) & CurrentProject.path & "\Fotos" & Chr(34), vbHide)
    Volta:
                If ProgramaAtivo("WinRar") = True Then
                    Pause (5)
                    GoTo Volta
                End If



    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Convidado 12/9/2013, 02:10

    O Código completo...

    As vezes mesmo quando um programa é finalizado seu processo ainda fica ativo no task Manager, por isso encerro o processo antes de compactar a pasta fotos



    Private Sub Form_Timer()
    '---------------------------------------------------------------------------
    'Este código se encontra no evento timer para alimentar a barra de progresso
    '---------------------------------------------------------------------------
    On Error GoTo TrataErro
    Dim msg As String

    Evento = Evento + 1
    Select Case Evento
    Case 1
    '-------------------------------------------------------------------------
    'Desabilita os botões enquanto a cópia estiver sendo realizada
    'Divide a barra de progresso, que tem um comprimento de 11cm, em 8 pedaços
    '-------------------------------------------------------------------------
    Me!cx1.Visible = True
    Me!btFoco.SetFocus
    Me!btIniciarBackup.Enabled = False
    Escala = (11.2 * 567) / 8
    Me!cx1.width = Escala
    Case 2
    Me!cx1.width = Escala * 2
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Me!Status.Caption = "Verificando Base de Dados..."
    Case 3
    Me!Status.Caption = "Copiando Base de Dados..."
    Me!cx1.width = Escala * 3
    Case 4
    '----------------------------------------------------------------------------
    'Inicia o processo de cópia simples da base de dados para o destino indicado.
    'Aqui a barra de progresso fica parada até a cópia ser concluída
    '----------------------------------------------------------------------------
    objFS.CopyFile Me!txOrigem, Me!txDestino
    Case 5
    '----------------------------------------------
    'Após a conclusão da cópia o código prossegue
    '----------------------------------------------
    Me!Status.Caption = "Compactando Base de Dados..."
    Me!cx1.width = Escala * 4
    Case 6
    Dim booResultado As Boolean
    '---------------------------------------------------------------------------------
    'Se a sua base de dados contiver uma senha de acesso, o método compactar e reparar
    'irá solicitá-la.
    '
    'A função do SendKeys é passar a senha no processo sem a intervenção do usuário.
    '
    'A função fncProtegido verifica se a base de dados possui senha e então permite
    'o uso do SendKeys.
    '
    'A função fncCapturSenha captura a senha da tabela vinculada
    '---------------------------------------------------------------------------------
    If fncProtegido = True Then
    Dim objws As Object
    Set objws = CreateObject("wscript.shell")
    'objws.SendKeys fncCapturaSenha, True '"a1234"
    objws.SendKeys SenhaBD
    objws.SendKeys "{ENTER}"
    End If
    '-----------------------------------------------------------------------
    'Observe que está sendo compactado e reparado a copia que foi gerada
    'pelo objfs.CopyFile no destino.
    '
    'É gerado então um outro arquivo, devidamente compactado e reparado, no
    'mesmo local de destino.
    '-----------------------------------------------------------------------
    DestinoNovo = Replace(Me!txDestino, "-", "-c")
    booResultado = Application.CompactRepair(Me!txDestino, DestinoNovo, True)
    '-----------------------------------------------------------------------------
    'O arquivo que foi copiado para o destino, pelo objfs.CopyFile, será excluído,
    'pois só nos interessa o que foi compactado e reparado.
    '-----------------------------------------------------------------------------
    If booResultado = True Then FileSystem.Kill Me!txDestino
    Me!cx1.width = Escala * 5
    Set objws = Nothing
    Case 7
    '-------------------------------------------------
    'Executa o winrar oculto se este tiver habilitado
    '--------------------------------------------------
    If Me!selWinrar = True Then
    Me!Status.Caption = "Compactando com o Winrar..."
    Dim Compri
    Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & Replace(DestinoNovo, ".accdb", "") & ".rar" & Chr(34) & " " & Chr(34) & DestinoNovo & Chr(34), vbHide)
    End If
    '---------------------------------------------------------------------------
    'Se a caixa de seleção para compactar fotos estiver marcada executa a função
    '---------------------------------------------------------------------------
    If Me.SelFotos.Value = -1 Then
    Dim strOrigem As String
    'Encerra o processo do WinRar caso exista algum resíduo no Task Manager
    Call MatarProcesso("WinRAR.exe")
    Pause (2)
    strOrigem = CurrentProject.path & "\Fotos\Fotos.rar"
    Compri = shell(strLocalWinRar & "\Winrar\WinRAR.EXE a " & Chr(34) & strOrigem & Chr(34) & " " & Chr(34) & CurrentProject.path & "\Fotos" & Chr(34), vbHide)
    Volta:
    If ProgramaAtivo("WinRar") = True Then
    Pause (5)
    GoTo Volta
    End If

    End If
    Me!cx1.width = Escala * 6
    Case 8
    If Me!selWinrar = True Then
    '--------------------------------------------------------------------------
    'Enquanto o winrar não completar a tarefa de compactação, o comprimento
    'do arquivo gerado fica em zero. Verifico este comprimento com o FileLen.
    'A barra de progresso vai crescendo gradativamente enquanto o winrar não
    'concluir a tarefa.
    '--------------------------------------------------------------------------
    If FileSystem.FileLen((Replace(DestinoNovo, ".accdb", "") & ".rar ")) = 0 Then
    Evento = 7
    If Me!cx1.width < (11.2 * 567) Then intCont = intCont + 1
    Me!cx1.width = (Escala * 7) + (15 * intCont)
    Else
    '----------------------------------------------------
    'Deleto o arquivo que não foi compactado pelo WinRAR
    '----------------------------------------------------
    FileSystem.Kill DestinoNovo
    Me!Status.Caption = "Backup concluído..."
    If Me.chkPen = -1 Then Call fncDestinoBackupPen
    Screen.MousePointer = 0
    Me!cx1.width = Escala * 8
    Me.TimerInterval = 3000
    End If
    Else
    Me!Status.Caption = "Backup concluído..."
    If Me.chkPen = -1 Then Call fncDestinoBackupPen
    Screen.MousePointer = 0
    Me!cx1.width = Escala * 8
    Me.TimerInterval = 3000
    'Caso esteja selecionado a chkbox DropBopx... envia copia do bakup para o mesmo
    If Me.SelDrop.Value = -1 Then
    Me.CopiaDrop
    End If


    End If
    Case 9
    Set objFS = Nothing
    '-------------------------------------------------------------------------------------
    'Caso tenha ocorrido uma correção da base de dados, pelo método compactar e reparar
    'é gerado um arquilo de log.
    '
    'Então abre um comunicado, para chamada urgente do adminitrador, que deverá verificar
    'e corrigir a base de dados em uso.
    '-------------------------------------------------------------------------------------
    If Len(Dir(Left(Me!txDestino, InStrRev(Me!txDestino, "\")) & "*.log", vbArchive) & "") > 0 Then
    MsgBox "Foi detectado problemas no arquivo de backup." & vbCrLf & _
    vbCrLf & "Entre em contato imediatamente com o administrador do Banco de Dados", vbCritical, "Aviso"
    End If
    Me.TimerInterval = 0
    Evento = 0
    End Select


    Sair:
    If Me.TimerInterval = 0 Then DoCmd.Close acDefault
    Exit Sub
    TrataErro:
    MsgBox err.Number & " - " & err.Description, vbInformation, "Aviso"
    Evento = 0: Screen.MousePointer = 0: Me.TimerInterval = 0
    Resume Sair
    End Sub



    Finaliza Processo:



    '---------------------------------------------------------------------------------------
    ' Procedure : MatarProcesso
    ' Author : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum : Fórum Máximo Access - http://maximoaccess.forumeiros.com/
    ' Date : 11/09/2013
    ' Comentários : Função para terminar o processo
    '---------------------------------------------------------------------------------------
    Private Function MatarProcesso(ByRef StrNombreProceso As String, Optional ByRef DecirSINO As Boolean = True) As Boolean
    On Error Resume Next
    Dim colProcessList
    Dim objProcess As Object
    Dim msg As String

    Set colProcessList = GetObject("Winmgmts:").ExecQuery("Select * from Win32_Process")

    MatarProcesso = False
    '-------------------------------------------------------------------------------------
    'Faz um loop pelos processos ativos caso o processo seja igual ao processo selecionado
    'Vai para mensagem de questionamwnto sobre o encerramento
    '-------------------------------------------------------------------------------------
    For Each objProcess In colProcessList
    If UCase(objProcess.Name) = UCase(StrNombreProceso) Then
    '-----------------------------------------
    'Matamos o processo com o método Terminate
    '-----------------------------------------
    objProcess.Terminate (0)
    MatarProcesso = True
    End If
    Next
    '--------------------
    'Elimina as variaveis
    '--------------------
    objProcess = Nothing
    End Function


    Cumprimentos.


    Conteúdo patrocinado


    [Resolvido]Provocar pausa no código enquanto pasta é compactada Empty Re: [Resolvido]Provocar pausa no código enquanto pasta é compactada

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 23:41