Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:detectar_alteracoes_sistema_operativo

Detectar alterações no Sistema Operativo

As aplicações estão muitas vezes dependentes de informações do sistema operativo para trabalharem correctamente. Cores utilizadas, fontes utilizadas, utilizador actual do sistema, data/hora, etc, são algumas das coisas que podem influenciar o funcionamento da aplicação. Por exemplo, se uma aplicação faz algo a uma determinada hora e essa hora é modificada, essa tarefa pode não ser efectuada.

Caso se necessite, ou seja, caso exista uma dependência da aplicação de informações do sistema operativo, é possível detectar alterações e tomar decisões.

O seguinte exemplo mostra como detectar algumas alterações no sistema operativo, mostrando uma mensagem informativa. Existem mais condições e eventos que se podem monitorizar, mas para este exemplo apenas serão mostrados alguns.

Exemplo

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        ' Cria eventos para algumas alterações no sistema
        ' (data/hora, sessão e preferencias de visualização do utilizador)
 
        AddHandler Microsoft.Win32.SystemEvents.TimeChanged, _
                    AddressOf TimeChangedEvent
        AddHandler Microsoft.Win32.SystemEvents.SessionSwitch, _
                    AddressOf SessionSwitchEvent
        AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _
                    AddressOf UserPreferenceChangedEvent 
 
    End Sub
 
 
 
    ' Verifica alterações na data/hora do sistema
    Sub TimeChangedEvent(ByVal sender As Object, ByVal e As System.EventArgs)
        MessageBox.Show("Foi alterada a data/hora do sistema")
    End Sub
 
 
 
    ' Verifica alterações na sessão (logins)
    Sub SessionSwitchEvent(ByVal sender As Object, ByVal e As Microsoft.Win32.SessionSwitchEventArgs)
 
        ' Verifica qual a alteração efectuada
        Select Case e.Reason
            Case Microsoft.Win32.SessionSwitchReason.SessionLock
                MessageBox.Show("O sistema foi bloqueado")
            Case Microsoft.Win32.SessionSwitchReason.SessionUnlock
                MessageBox.Show("O sistema foi desbloqueado")
            Case Microsoft.Win32.SessionSwitchReason.SessionLogon
                MessageBox.Show("Efectuado um novo login no sistema")
            Case Microsoft.Win32.SessionSwitchReason.SessionLogoff
                MessageBox.Show("Efectuado um novo logout no sistema")
        End Select
 
    End Sub
 
 
 
    ' Verifica alterações às preferências do utilizador
    Sub UserPreferenceChangedEvent(ByVal sender As Object, ByVal e As Microsoft.Win32.UserPreferenceChangedEventArgs)
 
        ' Verifica qual a categoria alterada
        Select Case e.Category
            Case Microsoft.Win32.UserPreferenceCategory.Color
                MessageBox.Show("Foram alteradas as cores do sistema")
            Case Microsoft.Win32.UserPreferenceCategory.Screensaver
                MessageBox.Show("Foi alterado o screensaver do sistema")
            Case Microsoft.Win32.UserPreferenceCategory.Window
                MessageBox.Show("Foram alteradas dimensões ou características do sistema")
        End Select
 
    End Sub

Autoria

Este artigo foi inicialmente escrito por Jorge Paulino para o seu blog VBTuga - Visual Basic em Português.

dev_net/vb.net/detectar_alteracoes_sistema_operativo.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)