Bom dia,
Estou com um cenário que não consegui solucionar até o momento. Quando executo o script e se houver alguma janela do Chrome aberta, é gerado uma mensagem de erro como:
TelaInicial.CommandButton1_Click
Erro na linha 17:‘Não encontrado (SWbemObjectEx)’
Sub CommandButton1_Click()
Btn_Pressionado = Application.GetObject(“Dados.TagInterno1”).Value
’ Verifica se o botão já foi pressionado
If Btn_Pressionado = False Then
strComputer = "."
strProcessKill = "'chrome.exe'"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
running = True
objProcess.Terminate() ' Quando clica mais de uma vez, em sequência,
' o botão de parada, gera erro nessa linha.
' Mesmo que o viewer seja aberto pela primeira vez
' o erro permanece se houver alguma janela do
' Chrome aberta
Next
' Abre a tela de apontamento de parada
'Application.ExecuteExternalApp "chrome", "https://kb.elipse.com.br/", "", 1
' Inicia processo de bloqueio por 10s
Application.GetObject("Dados.TagInterno1").Value = 1
Application.GetObject("Dados.TagContador1").Enabled = True
' Define a variável de estado para indicar que o botão foi pressionado
Btn_Pressionado = True
Else
'botaoPressionado = False
MsgBox "Sua solicitação foi processada... Aguarde abertura do Chrome!", vbOKOnly + vbInformation, "Informativo"
End If
’ Enquanto o Processo estiver rodando não pode ser aberto outro chrome
If Application.IsAppRunning(Btn_Pressionado) Then
MsgBox "O Chrome já está aberto", 64
Else
'Abre uma aplicação externa, no caso o Chrome
Application.ExecuteExternalApp "chrome", "https://kb.elipse.com.br/", "", 1, Btn_Pressionado
'Insere o valor do ProcessID na Tag Interna
Application.GetObject("Dados.TagInterno1").Value = Btn_Pressionado
End If
End Sub
Caso eu não tenha janela do Chrome aberta, o script é executado sem erro.
Gostaria de ajuda para solucionar este cenário
.