
Introdução
O painel de preferências do Palm OS (Prefs), permite configurarmos quando o PDA deve ser desligado automaticamente, no caso de inatividade do usuário. Este é um recurso importante do sistema operacional que nos ajuda a economizar bateria se, por acaso, esquecermos o PDA ligado ou ainda se ele for ligado sem intenção quando o carregamos no bolso ou dentro de uma mochila, por exemplo.
Conceito
A opção de desligamento automático está normalmente disponível no item "General" do painel de preferências, no campo "Auto-off After", onde podemos definir que o PDA deve ser desligado automaticamente após 30 segundos, 1, 2, ou 3 minutos de inatividade. Podemos notar que através do painel de preferências, não é possível especificar valores diferentes dos itens da lista, por exemplo, não é possível definir que o PDA deve ser desligado após 10 minutos, somente, ou ainda, desligar este recurso para que o PDA nunca seja desligado automaticamente, dessa forma, podemos alcançar essas funcionalidades via programação.

Programação
O Palm OS possui uma função API chamada sysTrapSysSetAutoOffTime, que nos permite informar, em segundos, quando o PDA deve ser desligado automaticamente. Esta função recebe um valor do tipo Integer com o número de segundos, e retorna outro valor do tipo Integer, que corresponte ao valor que estava configurado antes. Dessa forma, se passarmos o valor 40, por exemplo, o PDA será desligado após 40 segundos de inatividade, assim como, se informarmos o valor 1800, o PDA será desligado automaticamente após 1800 segundos, o que equivale a 30 minutos (60 * 30), já para desligar o recurso de desligamento automático, basta passar o valor 0 (zero) para a função sysTrapSysSetAutoOffTime.
Assim, o primeiro passo é criar um módulo no projeto, e declarar a função API:
'Declaração da função SysSetAutoOffTime, que aponta para a API sysTrapSysSetAutoOffTime do Palm OS Public Declare Function SysSetAutoOffTime(ByVal seconds As Integer) As Integer TRAP &HA0C0
Com a função declarada, basta efetuarmos a chamada:
Private Sub btnExemplo1_Click()
'Define que o PDA será desligado após 1200
'segundos de inatividade (20 minutos)
SysSetAutoOffTime 1200
End Sub
Private Sub btnExemplo2_Click()
'Define que o PDA será desligado após 300
'segundos de inatividade (5 minutos)
SysSetAutoOffTime 60 * 5
End Sub
Private Sub btnExemplo3_Click()
'Define que o PDA nunca será desligado por inatividade
SysSetAutoOffTime 0
End Sub
Caso seja necessário conhecer o valor configurado antes da chamada da função, basta verificar o retorno da função:
Private Sub btnExemplo2_Click()
'Variável para guardar o valor configurado anteriormente
Dim iValorAntigo As Integer
'Define que o PDA será desligado após 300
'segundos de inatividade (5 minutos)
iValorAntigo = SysSetAutoOffTime(60 * 5)
'Mostra mensagems informativas
MsgBox "Desligamento automático definido para " & CStr(iSegundos / 60) & " Minutos."
MsgBox "Valor definido anteriormente: " & CStr(iValorAntigo / 60) & " Minutos."
End Sub
Histórico
- 22/05/2007 - Primeira versão deste artigo.
Sobre o Autor
Caio Proiete é Arquiteto de Soluções, especialista em desenvolvimento de softwares para PDAs e telefones celulares, principalmente nas plataformas Palm OS, Windows Mobile e Symbian OS.
Atualmente suas principais ferramentas/tecnologias de trabalho incluem CodeWarrior C++, Handheld Basic, eMbedded Visual C++, .NET Compact Framework, C# .NET, e Carbide.c++.
Possui extensa experiência em arquitetura e desenvolvimento de sistemas baseados em web e smart-clients, gerenciamento de projetos e treinamento, e atua também como instrutor oficial Microsoft em centros de treinamentos (CLPS), e é detentor das seguintes certificações:
- MCT - Microsoft Certified Trainer;
- MCSD - Microsoft Certified Solution Developer;
- MCDBA - Microsoft Certified Database Administrator;
- MCAD .NET - Microsoft Certified Application Developer;
- MCSD .NET - Microsoft Certified Solution Developer for .NET;
- MCTS - Microsoft Certified Technology Specialist for Windows Mobile.
Veja o todos os artigos publicados por Caio Proiete no PDAExpert.
Artigos Relacionados
- Não existem artigos relacionados
4 Comentários »
Comentários via RSS TrackBack URI
-
Sherly em 28/05/2007 12:06
Oi, ou cosumidor assíduo das suas dicas sobre HB++, parabéns pelo trabalho e obrigaddo por compatirlhar com a galera!!
Mas eu tenho uma duvida sobre HB++ que não quer calar, seria possível ligar e desligar o rádio wi-fi do palm TX via código, sem aparecer aquele MSGBOX: “Deseja ligar wi-fi”?
Obrigado pela atenção !! -
Equipe PDAExpert em 03/06/2007 13:50
Sherly,
A área de comentários deve ser utilizada para dúvidas sobre o artigo em questão.
Para dúvidas não relacionadas com o artigo, utilize nosso fórum.Atenciosamente,
Equipe PDAExpert
www.pdaexpert.net -
Daniel Krabbe em 20/08/2007 21:22
Oi Caio, boa noite.
(excelente artigo…)
Nós queríamos uma função que desabilitasse o botão de power off por uma quantidade estimada de tempo (o reset funcionaria). Vc tem alguma sugestão?
Abraços
Daniel Krabbe
-
Caio Proiete em 21/08/2007 05:42
Obrigado Daniel,
Sobre sua dúvida, utilize o evento KeyPress do formulário e capture o
hbCharHardPowere cancele sua execução (bForward = False).Abraços,
Caio Proiete


Envie seu comentário
ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.