Como faço para finalizar a aplicação que está em execução ao clicar em um botão ou ao pressionar uma determinada combinação de teclas. Precisaria que isso acontecesse somente quando administradores estiverem logados.
Obrigado.
Como faço para finalizar a aplicação que está em execução ao clicar em um botão ou ao pressionar uma determinada combinação de teclas. Precisaria que isso acontecesse somente quando administradores estiverem logados.
Obrigado.
Diego,
Você pode executar o E3Admin com a opção ‘-stop’ através do método ‘ExecuteExternalApp’. Por exemplo:
Application.ExecuteExternalApp "C:\Program Files (x86)\Elipse Software\Elipse E3\Bin\E3Admin.exe", "-stop", "", 0
Só tem que tomar cuidado para não fazer isso nos Viewers remotos. Para isso você pode guardar o nome do computador onde está rodando o domínio em um tag interno do servidor de dados. Por exemplo:
Sub Dados1_OnStartRunning()
Item("PCServerName").Value = GetComputerName()
End Sub
E o nome do computador onde está rodando o Viewer em um tag interno do Viewer. Por exemplo:
Sub Viewer_OnStartRunning()
Item("PCViewerName").Value = GetComputerName()
End Sub
Assim, você pode comparar o nome guardado nos dois tags antes de executar o comando. Por exemplo:
Sub CommandButton1_Click()
If Application.Item("PCViewerName").Value = Application.GetObject("Dados1.PCServerName").Value then
'Se o usuário pertencer ao grupo Administradores
If Application.IsUserMemberOfGroup("Administradores") then
If MsgBox("Você realmente deseja parar o domínio agora?", vbYesNo) = vbYes then
'Para o domínio
Application.ExecuteExternalApp "C:\Program Files\Elipse Software\Elipse E3\Bin\E3Admin.exe", "-stop", "", 0
'Fecha o Viewer
Application.Exit()
End If
Else
MsgBox "Você precisa ser administrador para realizar esta operação."
End If
Else
MsgBox "Não é possível parar o domínio remotamente."
End If
End Sub
Para poder parar o domínio a partir do Viewer estando remoto ou não, pode ser usado o método “Run” do objeto WScript, conforme abaixo:
Set WshShell = CreateObject(“WScript.Shell”)
Call WshShell.Run(“C:\Progra~2\Elipse~1\Elipse~1\Bin\E3Admin.exe -stop”, 9, false)
Neste exemplo, o endereço do E3Admin. exe é passado de forma a não conter espaços.
Para usar esta forma, a sugestão é criar um tag interno com o valor do tipo Boolean e, no código sugerido pelo Paulo Gustavo na linha onde seria chamado o método “ExecuteExternalApp” você atribuiria o valor True para o tag interno, que teria o código que passei em um evento que verifica quando o Value é verdadeiro.
Espero ter ajudado.