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

    Verificar aplicativo aberto na barra de tarefas

    avatar
    guto_coimbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 8
    Registrado : 19/02/2013

    Verificar aplicativo aberto na barra de tarefas Empty Verificar aplicativo aberto na barra de tarefas

    Mensagem  guto_coimbra 10/7/2013, 14:31

    Prezados,

    Gostaria de verificar se determinado aplicativo (excel) está aberto na minha barra de tarefas. Tenho a função que verifica se o processo EXCEL.EXE está ativo, contudo as vezes ocorre de o usuário fechar as planilhas do excel e o processo continuar ativo.

    Isso é importante pq ao abrir o formulário para importação de planilha excel todas as planilhas devem estar fechadas. Caso ele detecte que há planilha aberta, o usuário é avisado para fechá-la. Como dito acima mesmo o usuário encerrando o aplicativo o processo continua rodando e o sistema identifica que há arquivo aberto.

    Espero ter sido claro.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Verificar aplicativo aberto na barra de tarefas Empty Re: Verificar aplicativo aberto na barra de tarefas

    Mensagem  Marco Messa 11/7/2013, 14:48

    Veja se te ajuda ae amigo:


    Código:
    Option Explicit
     
    Private Declare Function OpenProcess Lib "kernel32" ( _
        ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
        
    Private Declare Function CloseHandle Lib "kernel32" ( _
        ByVal hObject As Long) As Long
     
    Private Declare Function EnumProcesses Lib "PSAPI.DLL" ( _
       lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
     
    Private Declare Function EnumProcessModules Lib "PSAPI.DLL" ( _
        ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
     
    Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" ( _
        ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
     
    Private Const PROCESS_VM_READ = &H10
    Private Const PROCESS_QUERY_INFORMATION = &H400
     
    Private Function IsProcessRunning(ByVal sProcess As String) As Boolean
        Const MAX_PATH As Long = 260
        Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
        Dim sName As String
        
        sProcess = UCase$(sProcess)
        
        ReDim lProcesses(1023) As Long
        If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
            For N = 0 To (lRet \ 4) - 1
                hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
                If hProcess Then
                    ReDim lModules(1023)
                    If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
                        sName = String$(MAX_PATH, vbNullChar)
                        GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
                        sName = Left$(sName, InStr(sName, vbNullChar) - 1)
                        If Len(sName) = Len(sProcess) Then
                            If sProcess = UCase$(sName) Then IsProcessRunning = True: Exit Function
                        End If
                    End If
                End If
                CloseHandle hProcess
            Next N
        End If
    End Function

    'Testando a função
    Private Sub Command1_Click()
        Debug.Print IsProcessRunning("vb6.exe")
    End Sub

    bushmobile escreveu:http://www.vbforums.com/showthread.php?447184-Check-For-Running-Process


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    guto_coimbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 8
    Registrado : 19/02/2013

    Verificar aplicativo aberto na barra de tarefas Empty Verificar aplicativo aberto na barra de tarefas

    Mensagem  guto_coimbra 11/7/2013, 15:09

    Então Marco,

    Essa função que vc me passou verificar se o processo está aberto. Ocorre que o usuário pode ter fechado todas as planilhas do excel e ainda assim o processo (excel.exe) continua rodando.

    Desenvolvi uma função que verifica se há processo rodando, se houver ele pede pro usuário encerrar. Testando a função eu fechei os arquivos xls que estavam abertos e ainda assim ele pede pra fechar, por isso queria uma função para verificar se existe o processo na barra de tarefas...

    Obrigado e abraços.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Verificar aplicativo aberto na barra de tarefas Empty Re: Verificar aplicativo aberto na barra de tarefas

    Mensagem  Marco Messa 11/7/2013, 15:14

    Na barra de tarefas não, no gerenciador de tarefas você quer dizer certo?
    Eu não testei a função que citei, porém vi que seria para verificar o processo e não a janela aberta.

    Pra mandar o usuário matar é só enviar uma mensagem de confirmação, caso ele escolha sim, utilize o Shell e o Taskill.


    .................................................................................
    Tea with me that I book your face Cool
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Verificar aplicativo aberto na barra de tarefas Empty Re: Verificar aplicativo aberto na barra de tarefas

    Mensagem  Marco Messa 11/7/2013, 15:15

    PS.: Verifique o link que citei no primeiro comentário, pode ser que você encontre o que precisa.


    .................................................................................
    Tea with me that I book your face Cool

    Conteúdo patrocinado


    Verificar aplicativo aberto na barra de tarefas Empty Re: Verificar aplicativo aberto na barra de tarefas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 19:20