KB-109599: Limitando a quantidade de Viewers no Elipse E3 através de scripts.

Descrição:

É possível limitar, através de scripts, a quantidade de Viewers em uma aplicação desenvolvida em Elipse E3? Preciso que cada computador abra apenas um Viewer. Como os computadores da rede têm IP dinâmico, não posso utilizar os Grupos de Viewer nas Opções de Domínio

 

Solução:

O Viewer permite operar as aplicações residentes no servidor em qualquer computador com o programa executável Viewer (Windows XP, 2003, Vista e Windows 7) ou com um navegador de Internet. Em ambos os casos, não é necessário instalar a aplicação na máquina cliente; todos os componentes (Telas, Bibliotecas, controles ActiveX) serão baixados e registrados automaticamente.

 

Para limitar a quantidade de Viewers de um aplicação desenvolvida em Elipse E3 em um grupo de IPs, primeiramente deve-se acessar a janela de configuração do domínio (E3Admin -> Domínio -> Opções). Logo após, clique na aba Grupo de Viewers e selecione o grupo desejado; então, configure-o para que seja permitido abrir somente um Viewer.

O Elipse E3 não permite uma configuração que limite a quantidade de Viewers por IP dentro de um grupo. Sendo assim, seria necessário criar diversos grupos, apenas com um IP por grupo, e limitar quantidade de Viewers nestes grupos unitários.

Como o processo acima torna-se trabalhoso em um range muito grande de IPs, uma alternativa para este caso é verificar, via scripts, se um processo do Viewer já está sendo executado no computador. Caso positivo, fecha-se o novo Viewer por script.

Esta alternativa consome uma licença de Viewer, temporariamente, enquanto o script é executado e o Viewer é fechado.

O seguinte script deve ser feito no evento OnStartRunning do Viewer:

ProcessName = "Viewer.exe"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\localhost\root\cimv2")
Set results = objWMIService.ExecQuery(" Select * from Win32_Process where Name = '"& ProcessName &"'")
If results.count >1 Then
  For each obj in results
    MsgBox "Já existe um Viewer aberto neste computador!"
    Application.Exit()
    Exit Sub
  Next
End If

 

Este artigo foi útil? Was this post helpful?
Yes0
No0

Leave a Reply

Your email address will not be published.Required fields are marked *