VB 2005 - Criando um protetor de tela para seu computador
Este artigo mostra os passos básicos para você criar um protetor de tela usando o Visual Basic 2005 Express. Para não complicar muito o assunto e tornar o entendimento do código e das etapas mais clara será criado um protetor de tela muito simples sem imagens gráficas ou efeitos especiais. Nada impede porém que você incremente o projeto incluindo estas funcionalidades usando todo o seu talento.
Vamos criar então o nosso protetor de tela...
Ele deverá apresentar uma tela negra e exibir a data e a hora ou somente a hora no centro da tela conforme a opção do usuário. Abaixo temos uma visão do protetor em funcionamento:
Abra o Visual Basic 2005 Express e crie um novo projeto do tipo Windows Forms chamado protecaoTela e altere o nome do formulário padrão de form1.vb para protecaoTela.vb.
Abra o formulário protecaoTela.vb e defina as seguintes propriedades:
Este formulário será usado para exibir a proteção de tela; maximizando o formulário e definindo que o formulário deverá aparecer sempre sobre todos os demais formulários (TopMost=True) fará com que o mesmo ocupe toda a tela do computador sobre qualquer janela que estiver aberta.
Vamos incluir um controle Label chamado horaAtual no formulário protecaoTela.vb e definir as seguintes propriedades do controle:
Inclua um controle Timer chamado ClockTimer no formulário e define as seguintes propriedades deste controle:
Abaixo temos o leiaute do formulário exibindo o controle Label e o controle Timer:
Inclua o seguinte código no formulário; nele estaremos tratando eventos de mouse e de exibição dos valores de data e hora no formulário.
Public Class protecaoTela Private ultimaPosicaoDoMouse As New Point(-1, -1) Private Sub ClockTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClockTimer.Tick ' ----- exibe a hora atualizaRelogio() End Sub Private Sub atualizaRelogio() ' ----- Aualiza e exibe quando houver mudanças If (IncluirData() = True) Then horaAtual.Text = Now.ToLongDateString & vbCrLf & Now.ToLongTimeString Else horaAtual.Text = Now.ToLongTimeString End If End Sub Private Sub protecaoTela_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) _ Handles Me.FormClosing ' ----- Restaura o ponteiro do mouse Windows.Forms.Cursor.Show() End Sub Private Sub protecaoTela_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) _ Handles Me.KeyDown ' ----- Pressionar qualquer tecla para o programa Me.Close() End Sub Private Sub protecaoTela_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' ----- Esconde o cursor do mouse Windows.Forms.Cursor.Hide() atualizaRelogio() End Sub Private Sub protecaoTela_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown ' ----- ao clicar pára o programa. Me.Close() End Sub Private Sub protecaoTela_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove ' ----- Ao mover o mouse -> para o programa If (ultimaPosicaoDoMouse <> New Point(-1, -1)) Then ' ----- Verifica se o mouse moveu-se If (ultimaPosicaoDoMouse <> New Point(e.X, e.Y)) Then Me.Close() End If End If ' ----- Grava a posicao atual ultimaPosicaoDoMouse = New Point(e.X, e.Y) End Sub Private Sub protecaoTela_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize ' ----- Centraliza a Label no formulário horaAtual.Location = New Point(0, (Me.Height - horaAtual.Height) / 2) horaAtual.Size = New Size(Me.Width, horaAtual.Height) End Sub End Class |
Inclua um novo formulário no projeto usando o item Project e a opção Add Windows Forms. Vamos chamar este formulário de config.vb pois ele permitirá o usuário selecionar se deseja exibir a data na proteção de tela. Inclua no formulário um controle CheckBox com o nome de IncluirData e dois botões de comando chamados cmdOK e cmdCancela conforme a figura abaixo:
Este formulário não vai possuir código devemos apenas definir as seguintes propriedades dos controles usados e do formulário, vamos começar pelo formulário:
Agora inclua um módulo no projeto chamado Geral.vb e digite o seguinte código:
Module Geral Public Sub Main() ' ----- Inicia a proteção de tela aqui Dim opcaoInicio As String = "" ' ----- Verifia os argumentos de linha de comando ' /s = Inicia a proteção de tela ' /c = Configura a proteção de tela (default) If (My.Application.CommandLineArgs.Count > 0) Then opcaoInicio = My.Application.CommandLineArgs(0).ToUpper() If (opcaoInicio = "") Then opcaoInicio = "/C" If (opcaoInicio.Substring(0, 2) = "/C") Then config.ShowDialog() Return ElseIf (opcaoInicio.Substring(0, 2) <> "/S") Then ' ----- Ignora todas as opções alem de ".startup" Return End If ' ----- Inica a protecao de tela protecaoTela.ShowDialog() End Sub Public Function IncluiData() As Boolean ' ----- Obtem o valor da configuração atual Dim configChave As Microsoft.Win32.RegistryKey Dim valor As Object IncluiData = False Try ' ----- Carrega os valores do registro configChave = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Macoratti\protecaoTela") If (configChave IsNot Nothing) Then 'obtem o valor salvo no registro do checkbox IncluirData valor = configChave.GetValue("IncluirData") If (valor IsNot Nothing) Then IncluiData = CBool(valor) configChave.Close() End If Catch ex As Exception ' ----- Não exibe erros Finally configChave = Nothing End Try End Function End Module |
Neste código a proteção de tela é ativada e a função IncluiData() irá verificar se a data deve ser exibida na tela recuperando o valor salvo no registro (propriedade do controle checkBox - IncluirData do formulário config.vb)
Pegue o projeto completo aqui : protecaoTela.zip
Até 2007 com mais artigos sobre VB.NET e um Feliz Ano Novo...
José Carlos Macoratti