
Introdução
Um dos problemas mais comuns entre os desenvolvedores de aplicações para Palm OS é a automatização da instalação de aplicações no PDA. O PalmDesktop fornece formas de instalar aplicações e bancos de dados no PDA, mas todas elas requerem intervenção do usuário, e assim, impossibilitam a criação de scripts de instalação automática.
Conceito
A forma mais comum para instalação de arquivos em PDAs Palm OS, é utilizar a ferramenta QuickInstall, que faz parte do PalmDesktop. Com o QuickInstall, podemos selecionar as aplicações que serão instaladas no próximo sincronismo utilizando o recurso de drag-and-drop, arrastando arquivos para a janela do QuickInstall, ou ainda executá-lo via linha de comando, como por exemplo:
"C:\Arquivos de Programas\PalmOne\QuickInstall.exe" C:\Empresa\minhaAplicacao.prc

Outra forma de atingir o mesmo resultado, é utilizar a ferramenta InstApp, também incluída na instalação do PalmDesktop, e que também pode ser executada via linha de comando, por exemplo:
"C:\Arquivos de Programas\PalmOne\InstApp.exe" C:\Empresa\minhaAplicacao.prc

Como podemos observar, as duas ferramentas, QuickInstall e InstApp, exigem interação do usuário para confirmar a instalação, para selecionar o destino da aplicação (memória interna ou cartão de expansão) e também para selecionar o usuário de HotSync. Para tentar resolver essa deficiência, desenvolvi um utilitário simples chamado Send2Palm, que permite instalar aplicações e bancos de dados em PDAs Palm OS, de forma automática e parametrizada.
Utilitário Send2Palm

O Send2Palm utiliza a API padrão de instalação do HotSync, disponibilizada no arquivo Instaide.dll, e envia arquivos para a "HotSync Queue", que corresponde à lista de aplicações que serão instaladas no próximo HotSync, para determinados usuários.
Este utilitário permite instalar aplicações e bancos de dados para usuários específicos ou para todos os usuários, permite definir se a aplicação será instalada na memória interna do PDA ou no cartão de expansão e ainda permite efetuar a instalação em modo silencioso (quiet mode), se desejar suprimir os detalhes da instalação. O Send2Palm permite também visualizar a lista de usuários de HotSync existentes no computador.
Sintaxe para utilização do Send2Palm:
Send2Palm NomeArquivo NomeUsuario [/AllUsers] [/InstallToCard] [/Quiet]
Os parâmetros /AllUsers, /InstallToCard e /Quiet são opcionais e significam respectivamente:
/AllUsers- Instala o arquivo para todos os usuários existentes;/InstallToCard- Instala o arquivo no cartão de expansão (o padrão é instalar na memória interna do PDA);/Quiet- Efetua a instalação do arquivo suprimindo os detalhes da instalação e mensagens de erro.
É importante lembrar que uma das regras de passagem de parâmetros em linha de comando é colocar entre aspas os parâmetros que contenham espaço. Assim, se o nome do arquivo e/ou do usuário possuirem espaço, devem estar entre aspas, como no exemplo:
Send2Palm "Meu Banco de Dados.pdb" "Carlos Alberto"
Utilizando Send2Palm em Arquivos de Lote
Assim como a maioria das ferramentas de linha de comando, o Send2Palm retorna 0 (zero) se conseguir efetuar a instalação com sucesso e 1 (um) em caso de erro. Dessa forma, podemos capturar este código de retorno para controlar o fluxo do script de instalação. Em arquivos de lote (batch files) este erro é capturado através da variável ErrorLevel, como no exemplo:
Instalar.bat
@Echo Off Send2Palm C:\Empresa\Aplicacao.prc "Carolina Machado" /quiet If ErrorLevel 1 GoTo Erro Send2Palm C:\Empresa\Dados.pdb "Carolina Machado" /quiet If ErrorLevel 1 GoTo Erro Echo OK. A aplicação será instalada no próximo sincronismo. Exit :Erro Echo Ocorreu um erro durante a instalação.
Licença de Uso
O Send2Palm é um software gratuito e pode ser distribuído livremente, não sendo permitido a comercialização, direta ou indireta desta ferramenta.
A PDAExpert e o autor não oferecem qualquer garantia ou assistência à ferramenta, não se responsabilizando igualmente por possíveis danos causados pela utilização da mesma.
Histórico
- 25/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
7 Comentários »
Comentários via RSS TrackBack URI
-
Julio Cesar Oliveira em 28/05/2007 13:52
Bom artigo. Só acho que ao invés de presentear os usuários com um programa pronto, seria melhor detalhar quais funções da dll foram utilizadas para instalar os arquivos.
-
Caio Proiete em 04/06/2007 17:59
Obrigado! Esse é o próximo passo, Júlio. A verdade é que a ferramenta já estava pronta, e eu já tinha publicado um pequeno texto descrevendo sua utilização em nossa intranet… Então, para transformar em artigo foram precisos apenas 5 minutos :).
Abraços,
Caio Proiete -
Luis Wagner dos Santos em 23/07/2007 17:00
Caio.
Parabéns pelo Artigo. Excelente.
Tenho uma dúvida.Montei um bat como seu exemplo.
Na primeira execução ocorreu tudo perfeitamente. Na segunda apresentou erros.
Será que tenho que sincronizar primeiro antes de testar novamente ?Abraços.
Luis Wagner
-
Caio Proiete em 23/07/2007 17:11
Obrigado Luis Wagner.
Sobre sua dúvida, é exatamente isso. Tem de sincronizar antes de tentar instalar novamente o mesmo arquivo para o mesmo usuário.
O que esta aplicação faz é adicionar um arquivo (PRC ou PDB) na fila de arquivos para serem instalados no próximo sincronismo, então, se você tentar adicionar o mesmo arquivo pela segunda vez, ele vai dar erro sim.
Abraços,
Caio Proiete -
Roberto em 07/08/2007 09:08
E puxar um determinado arquivo do Palm, tem jeito??
-
Roberto em 07/08/2007 09:47
Na verdade como terá que ser executado um Hotsync ele ira fazer o backup dos dados. Dá na mesma.
-
Caio Proiete em 07/08/2007 10:45
Roberto,
Basta marcar a flag de “backup” do arquivo PRC ou PDB para que ele seja copiado automaticamente durante o HotSync.
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.