KB-28203: Impedindo que uma tela seja aberta por mais de um usuário simultaneamente.

Descrição:

Posso impedir que uma tela seja aberta por mais de um usuário ao mesmo tempo?

Solução:

Sim. A lógica completa deve passar pelo Servidor e está dividida em seis scripts (os nomes dos tags a seguir são apenas para fins elucidativos):

1. Ao abrir a tela inicial, guarde o nome do computador no valor de um tag do Viewer chamado PCName, utilizando a propriedade ComputerName do objeto WshNetwork (consultar o Guia de Referência do VBScript para maiores informações). Por exemplo:

     set WshNetwork = CreateObject(“WScript.Network”)
Application.Item(“PCName”).Value = WshNetwork.ComputerName 

2. No evento disparado pelo usuário com o propósito de abrir a tela (Click de um botão, por exemplo), passe o valor do tag PCName para um tag do Servidor chamado AccessRequest.

3. Crie um evento OnValueChanged no tag AccessRequest para verificar o valor do tag booleano ScreenStatus. Se ele for igual a TRUE, o valor do tag AccessRequest (que contém o nome do computador onde está rodando o Viewer) deve ser passado para o tag AccessDenied. Se ele for igual a FALSE, o valor do tag AccessRequest deve ser passado para outro tag do Servidor chamado AccessOK, e o valor do tag ScreenStatus deve ser alterado para TRUE.

4. Na tela inicial, deve existir um script para mostrar uma caixa de mensagem quando o tag AccessDenied alterar o valor (informando acesso negado para o usuário).

5. Também na tela inicial, deve existir outro script para abrir a tela de comando desejada quando o tag AccessOK alterar o valor (indica que o acesso está liberado).

6. Por fim, ao fechar a tela de comando, o valor dos tags ScreenStatus e AccessOK deve ser reconfigurado.

NOTA: Aplicação exemplo em anexo.

Anexos:

ExclusiveScreen

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Leave a Reply

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