O que é um Screen Saver
Um screen saver é um programa .EXE. O Windows reconhece um screen saver por duas características:
- Extensão .SCR
- O primeiro resource (ID 1) é um string resource (este string é usado como o nome apresentado para seleção)
- Tratar alguns parâmetros na linha de comando
- Cria a sua janela principal com um determina estilo
- Tratar algumas mensagens
- Encerar quando o operador pressionar uma tecla ou movimentar o mouse
Um screen saver completo fornece os seguintes recursos:
- O screen saver em si, que executa a apresentação na tela quando o sistema está inativo;
- Uma tela de configuração, onde o usuário pode alterar o funcionamento do screen saver;
- Uma modo preview, no qual o screen saver opera dentro da imagem de um monitor na tela de seleção de screen saver do Display Properties.
- Configuração de senha (para Windows 95/98/Me)
O objetivo da senha do screen saver é impedir que uma pessoa não autorizada encerre o screen saver e consiga visualizar o conteúdo da tela e operar o computador.
No Windows NT, 2000 e XP a senha do screen saver é tratada diretamente pelo sistema operacional, não exigindo nenhum tratamento especial no screen saver.
No Windows 9x, cabe ao screen saver:
- Apresentar o diálogo de mudança da senha
- Salvar a senha
- Apresentar o diálogo de solicitação da senha
- Conferir a senha
- Desabilitar Alt Esc e Ctrl Alt Del
O Windows pode disparar um Screen Saver de várias maneiras:
- Ativação por inatividade – este é o funcionamento normal do screen saver. Quando o Windows detecta que o sistema está inativo pelo tempo configurado para o screen saver, ele envia para a janela em foreground uma mensagem WM_SYSCOMMAND com o parâmetro SC_SCREENSAVE. Se esta mensagem é passada para DefWindowProc, o screen saver configurado é disparado com o parâmetro /s na linha de comando.
- Configuração – quando o botão Settings é clicado na tela de seleção de screen saver do Display Properties, o screen saver é disparado com o parâmetro /c na linha de comando.
- Preview full-screen - quando o botão Preview é clicado na tela de seleção de screen saver do Display Properties, o screen saver é disparado com o parâmetro /s na linha de comando.
- Preview em Display Properties – Quando a tela de seleção de screen saver do Display Properties recebe o foco, ou quando um novo screen saver é selecionado nesta tela, o screen saver é disparado com o parâmetro /p #### na linha de comando. #### corresponde ao valor (em decimal) do handle da janela onde o screen saver deverá ser apresentado (ou seja, a área correspondente à tela do desenho de um monitor).
- Mudança de senha – No Windows 9x o screen saver é o responsável pela senha (no NT, 2000 e XP, o próprio sistema gerencia a senha). Quando o botão Change Password é clicado na tela de seleção de screen saver do Display Properties, o screen saver é disparado com o parâmetro /a #### na linha de comando. #### corresponde ao valor (em decimal) do handle da janela de seleção de screen saver.
- Test no Windows Explorer – clicando duas vezes no ícone de um screen saver, ou clicando com o botão direito e escolhendo Test, o screen saver é executado com o parâmetro /s na linha de comando.
- Config no Windows Explorer – com o botão direito no ícone de um screen saver, e escolhendo Config, o screen saver é executado sem parâmetros.
Parâmetros na Linha de Comando de um Screen Saver
A lista abaixo resume os parâmetros passados para um screen saver na linha de comando e a ação a ser executada pelo screen saver:
- (nenhum) Apresentar a tela de configuração
- /c Apresentar o diálogo de configuração, como filho da janela em foreground
- /c #### Apresentar o diálogo de configuração, tendo como pai a janela cujo handle corresponde a ####
- /a #### Apresentar o diálogo de alteração da senha, tendo como pai a janela cujo handle corresponde a ####
- /s Executar o screen saver propriamente dito
- /p #### ou /l #### Executar o preview do screen saver dentro da janela cujo handle corresponde a ####
Na análise dos parâmetros deve-se aceitar ‘-‘ no lugar de ‘/’ e letras tanto maiúsculas como minúsculas.
Tratamento de Mensagens no Screen Saver
A lista a seguir mostra as principais mensagens que devem ser tratadas por um screen saver:
- WM_ACTIVATE, WM_ACTIVATEAPP, WM_NCACTIVATE Se LOWORD(wParam) for WA_INACTIVE, indicando que outra aplicação está sendo ativada, o screen saver deve terminar
- WM_SETCURSOR Desligar o cursor, através de SetCursor(NULL)
- WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_KEYDOWN Encerrar o screen saver
- WM_MOUSEMOVE Se as coordenadas do mouse mudaram mais que um certo mínimo, encerrar o screen saver
Nenhum comentário:
Postar um comentário