Um Site sem Nome  

Provided By CGISpy.com
 

Informática
Visual Basic
VB & DirectX
Ficção Científica
Star Wars
Literatura
Diversos
Fanfiction
Star Wars
Star Trek
Arquivo X
Matérias
Academia
Planetary System
Galeria
Fan Art
Desenhos
Imagens
Biblioteca
Ponto de Vista
Tecnologia
Diversos
Interatividade
Fórum
Livro de Visitas
Mailing List
Links
Sobre
Contato
Divulgação
Créditos
Mapa do Site
Downloads

 

Visual Basic

 

Protetor de tela

 

Obs: o símbolo indica que o código foi "quebrado" em mais linhas para que possa ser exibido na tela, sendo que deve constar em apenas uma linha no programa.

Este pequeno projeto demonstra como criar um protetor de tela simples, utilizando apenas os recursos disponíveis no Visual Basic. Ele foi originalmente desenvolvido para ambientes de 16 bitas, mas funciona perfeitamente bem em ambientes de 32 bits, sem que seja necessária qualquer alteração.
Ele só não pode exibir a pré-visualização dentro da tela de protetores do Windows. Em breve poderá ser disponibilizado um projeto de protetor de tela com os recursos necessários para ser exibido corretamente no Windows 98, mas contando com complexas chamadas à API do Windows. Portanto, aguarde.
Enquanto isso divirta-se com este projeto.
Segue abaixo as instruções para criação do programa. Estas instruções constam no arquivo INF.TXT que acompanha o projeto disponível para download.

Elementos necessários

1 - form para exibição do protetor de tela (frmShowSaver)
2 - form para configuração (frmConfigSaver)
3 - módulo para inicialização do protetor de tela (SaverModule)

 

Definindo as opções do projeto

No menu Tools, selecione a opção Options (no VB 4 de 16 bits é Project).
Na folha Project, defina os valores para as seguintes opções:
* StartUp Form: "Sub Main"
* Project Name: "SCRNSAVE"
* Application description: "SCRNSAVE : nome-do-screen-saver"
Na folha Advanced
* Command Line Arguments: "/s"

 

ANEXANDO CÓDIGO AO MÓDULO SaverModule

O código a seguir é responsável pela exibição dos forms de acordo com os parâmetros passados pelo Windows.
Se o parâmetro for /s ou /S, o Windows solicitou ao screen saver a exibição de sua tela principal (aquela que contém as animações).
Se o parâmetro for /c, /C ou "" (seqüência vazia), o Windows solicitou a exibição de uma janela para a configuração do programa.

Sub Main()

If Command = "/c" Or Command = "/C" Or Command = "" Then
   frmConfigSaver.Show
ElseIf Command = "/s" Or Command = "/S" Then
   frmShowSaver.Show
Else
   End
End If
     
End Sub
     

Implementando o form de exibição do screen saver

Para exibir seu protetor de tela, que pode conter animações criadas com bitmaps ou etiquetas, você deve criar um form
próprio. Neste exemplo, o screen saver utiliza toda a tela, com um fundo negro. Para isto, as propriedades do form devem ser definidas assim:

* BackColor = &H00000000&
* BorderStyle = 0 - none
* Caption = "" (Quando esta propriedade é uma seqüência em branco, o VB não exibe a barra de título do form)
* Name = frmShowSaver
* ShowInTaskbar = False
* WindowState = 2 - Maximized

O conteúdo do screen saver fica por sua conta. Experimente utilizar uma das opções do projeto [Blanker], que acompanha o VB.

 

Finalizando o programa

Como se sabe, todo o protetor de tela é desativado quando movemos o mouse ou pressionamos uma tecla. Neste projeto de exemplo foi utilizado apenas um form (com um controle Timer) para exibição do protetor de tela; portanto, para finalizar o programa são utilizados os eventos MouseMove, Click e KeyDown do form frmShowSaver.

Private Sub Form_Click()

Unload Me
     
End Sub
     
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
Unload Me
     
End Sub    

No evento MouseMove há um pequeno detalhe: para o VB o mouse está sempre em movimento, mesmo estando em absoluto repouso. Ou seja, se for digitado somente a linha "Unload Me" no evento MouseMove, o form nem sequer será exibido, pois o mouse está em movimento. Portanto, neste evento o código é um pouquinho mais longo.

Private Sub Form_MouseMove(Button As Integer, 
Shift As Integer, X As Single, Y As Single)
     
Static StartX As Single, StartY As Single
Dim PosX As Single, PosY As Single
     
If StartX = 0 Then StartX = X
If StartY = 0 Then StartY = Y
     
PosX = X
PosY = Y
     
If Abs(StartX - PosX) <> 0 Then Unload Me
If Abs(StartY - PosY) <> 0 Then Unload Me
     
End Sub 

No exemplo acima o programa só será finalizado se houver um movimento mais amplo do mouse (só se você realmente mover o mouse.
Para encerrar o programa basta inserir a seguinte instrução no evento Unload do form:

Private Sub Form_Unload(Cancel As Integer)
     
End
     
End Sub

 

Gerando o arquivo executável

No menu File, selecione a opção Make EXE File, clique no botão Options, na caixa de texto Title digite: "SCRNSAVE:nome-do-screen-saver". Crie o executável com a extensão SCR e grave-o no diretório System do Windows.

 

Selecionando o programa da lista de screen savers

Quando você for selecionar seu programa na lista de screen savers, verá que existe uma diferença entre o Windows 3.x e o 95.
O Windows 3.x exibe na lista o nome do programa (SCRNSAVE:nome), enquanto o 95 exibe o nome do arquivo do programa.

 

Importante

Existe ainda um pequeno detalhe sobre o protetor de tela. Quando a janela de configuração do programa é solicitada, o próprio programa é carregado. Após a configuração, quando a janela é fechada, o programa deve ser também encerrado, pois o mesmo será carregado novamente quando o sistema solicitar a exibição do protetor de tela.
Se a janela de configuração for somente fechada, o programa continuará na memória. Quando você finalizar o Windows 95, poderá ocorrer uma chamada inválida de função. No Windows 3.x ocorre um erro geral de proteção (acho que não preciso explicar mais).
Portanto, o form frmConfigSaver deve conter um botão para salvar as alterações e outro para cancelar.

Exemplo:
Suponha que o código seguinte pertenca ao evento click do botão Cancelar.

Private Sub bCancel_Click()
     
Unload Me
     
End Sub
     

No evento Unload do form, deve constar a instrução para encerramento do programa.

Private sub Form_Unload()
     
End
     
End sub
     

Assim, a janela será fechada, a configuração registrada (não esqueça do código para isso) e o programa encerrado, para que o mesmo possa ser novamente carregado quando o Windows solicitar o screen saver.

O texto apresentado acima se aplica ao Visual Basic 4.0 de 16 bits. Todas as informações sobre o projeto são necessárias para que o Windows 3.x reconheça o programa como um protetor de tela. Pelo que pude constatar, para o Windows 95 as informações em um protetor de tela diferem em alguns pontos do que foi apresentado. Isso não impede que o screen saver rode no ambiente de 32 bits.

12.07.1997

 

Está disponível para download o código-fonte do projeto, criado em VB5:
vb_project3.zip - 7 kb

 

 

 
   
26.08.2000
 
 
2000 - Rashi, an alien in Earth
Todas as marcas citadas são de propriedade de seus respectivos fabricantes.
 
1