HB++: Executar aplicação após Reset

Gostou deste artigo? Compartilhe!

CategoriasPalm OS, Handheld Basic
ComentáriosComentários (0)

HB++: Executar aplicação após Reset

Introdução

Por padrão, quando o Palm OS é reiniciado, uma aplicação específica é executada. Na maioria dos PDAs Palm OS, o aplicativo "Prefs" (Painel de Preferências) é executado a cada reset, enquanto nos smartphones Treo, o aplicativo Phone (Telefone) é executado após cada reset.

Quando empresas/desenvolvedores criam aplicações comerciais que serão utilizadas por seus funcionários, geralmente preferem que sua aplicação inicie automaticamente após cada reset, ao invés do painel de preferências. Aliás, normalmente o acesso à todos os outros programas do PDA são desabilitados e a aplicação comercial se comporta como se fosse o sistema operacional desse PDA.

Conceito

O Palm OS possui em suas configurações de preferência uma propriedade onde está definido o Creator ID da aplicação que será executada após cada reset. Como citado acima, na maioria dos PDAs está definido 'pref', que corresponde ao Creator ID da aplicação Prefs (Painel de Preferências), enquanto nos smartphones Treo, está definido 'HsPh' , que corresponde ao Creator ID da aplicação Phone (Telefone).

O painel de preferências do Palm OS não possui maneiras de alterar, de forma visual, esta propriedade, assim, a única maneira de alterar esta propriedade é via programação.

Modificando as Preferências

Para alterarmos as preferências do Palm OS, precisamos executar a função API sysTrapPrefSetPreference, informando o tipo de propriedade que desejamos modificar, e o novo valor. Dessa forma, precisamos declarar a chamada da função API em um módulo em nosso projeto.

'Tipo da preferência (52) equivale à aplicação executada após o reset
Public Const prefDefaultAppCreator As Byte = 52

'Declaração da função PrefSetPreference, que aponta para a API sysTrapPrefSetPreference do Palm OS
Public Declare Sub PrefSetPreference(ByVal bChoice As Byte, ByVal lValue As Long) Trap &HA2D2

Depois de declarar a função API em um módulo, precisamos executá-la informando no tipo da propriedade o valor de prefDefaultAppCreator, e o Creator ID de nossa aplicação. Para obter o Creator ID de nossa aplicação, utilizamos a propriedade App.Info.Creator.

Agora basta executar a função para definir que nossa aplicação será executada após cada reset:

Private Sub btnDefinir_Click()
    'Define que nosso aplicativo será executado após cada Reset
    PrefSetPreference prefDefaultAppCreator, CreatorToLong(App.Info.Creator)
End Sub

Como a propriedade App.Info.Creator é do tipo String, o valor é convertido primeiro para Long através da função CreatorToLong, e depois passado como parâmetro para a função PrefSetPreference.

Voltando à aplicação padrão

Quando desejar que o Palm OS volte a executar aplicação padrão a cada reset, basta executar novamente a função PrefSetPreference, informando o Creator ID da aplicação desejada (Prefs ou Phone, dependendo do PDA/Smartphone).

Private Sub btnVoltar_Click()
    'Volta para o que era antes...
    PrefSetPreference prefDefaultAppCreator, CreatorToLong("pref")
    '"pref" é Creator ID da do painel de Preferências (Prefs)
    'Substituir por "HsPh" se for Treo, para executar o Phone
End Sub

Considerações

Como você deve ter percebido, qualquer aplicação pode ser definida para ser executada após o reset, desde que você saiba o Creator ID correspondente. Uma dica para descobrir o Creator ID das aplicações, é utilizar o aplicativo FileZ, como descrito no artigo "O papel do Creator ID na arquitetura Palm OS" aqui no PDAExpert.

Importante: Antes de definir que sua aplicação será executada após o reset do sistema, certifique-se de que ela está totalmente livre de erros, pois caso ocorra algum problema com a aplicação, você terá de efetuar um HardReset no PDA, e poderá perder informações importantes.

Histórico

  • 27/04/2007 - Primeira versão deste artigo.

Sobre o Autor

Caio ProieteCaio 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

Nenhum comentário »

Comentários via RSS TrackBack URI

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.

Nome

E-mail

URL

Comentário

XHTML: São permitidas as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

campos obrigatórios