Realizado

Criação de aplicação windows para comunicação Web/Desktop

Publicado em 02 de Maio de 2018 dias na TI e Programação

Sobre este projeto

Aberto

Preciso de uma aplicação para comunicação entre uma página web e um computador windows.

Esta aplicação precisa ler o conteúdo da página web a cada intervalo de tempo pré-determinado, mostrar uma parte deste conteúdo na tela da aplicação no desktop e processar alguns comandos, como criar um arquivo, aguardar o processamento de algumas informações por outro programa do computador e enviar a resposta para o site.

Não precisa ser um programa instalavel, mas apenas executável.

São necessários pelo menos 2 Arquivos, um para configuração e o segundo o executável.
=======================================================================
1º - config.ini
Contém os parâmetros do sistema:
_______________________________________________
TextoTitulo=TituloDoProgramaQueApareceNaBarraSuperior

TextoBotaoProcessar=Processar
TextoBotaoReiniciar=Reiniciar
TextoAguardando=Aguardando

ServidorIni=http://site.com/ini.php?id=id
ServidorResp= http://site.com/resp.php?id=id

TimeWaitSegundos=30  //este tempo deve poder ser definido para valores maiores como 600 (10 min) ou 3600 (1 hora) por exemplo
TimeOutSegundos=30 //este tempo será sempre menor que 60

CriarArquivoTemp=c:/temp/temp.txt
RenomearArquivoTemp=c:/temp/fim.txt
AguardarArquivo=c:/temp/resposta.txt
_______________________________________________

=======================================================================
2º - monitor.exe

Este programa, quando aberto deve ficar na barra de tarefas e monitorar a pagina web ‘ServidorIni’ definida em ‘config.ini’ a cada intervalo de tempo definido em ‘TimeWaitSegundos’ e quando o status desta pagina web apresentar um conteúdo especifico deve se sobrepor a todas as janelas abertas e aguardar uma ação do usuário.

A partir do texto exibido na página web, que precisamos combinar como será processado pela aplicação, pois não sei qual a melhor forma de se receber e processar os dados obtidos da página web, mas pensei nas seguintes hipóteses:

A - Exibir como XML:

->Para status aguardando:
[ ?xml version="1.0" encoding="UTF-8"?>
[ urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
[status>Aguardando [ /status>
[tela>
[ linha1>Linha 1[/ linha1>
[ linha2>Linha 2[/ linha2>
[ linha3>Linha 3[/ linha3>
[ /tela>
[ /urlset>


->Quando tiver que processar comandos:
[ ?xml version="1.0" encoding="UTF-8"?>
[ urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
[status>Processar [ /status>
[tela>
[ linha1>Linha 1[/ linha1>
[ linha2>Linha 2[/ linha2>
[ linha3>Linha 3[/ linha3>
...Podem haver mais linhas, deve-se analisar esta quantidade.
[ /Tela>
[ arquivo>
[ linha1>Linha 1=1[/ linha1>
[ linha2>Linha 2=2[/ linha2>
[ linha3>Linha 3=3[/ linha3>
...Podem haver mais linhas, deve-se analisar esta quantidade.
[ /Arquivo>
[ /urlset>


B – Exibir dividindo com marcadores específicos, onde o ‘\\’significa o inicio do parâmetro e o ‘//’ significa o final e onde o inicial ‘00’ significa o status da ação, o inicial 01 significa que este parâmetro deve ser usado para exibir na tela e o ‘02’ que este parâmetro deve ser usado para criar o arquivo, o que vier depois do ponto, ex “01.01”, “01.02”, deve ser impresso na linha especifica e os dois pontos ‘:’ separa o parâmetro do  conteúdo. Ex.:

Aguardando
\\00:Aguardando//\\01.01:linha1//\\01.02:linha2//\\01.03:linha3//
...Podem haver mais linhas, deve-se analisar esta quantidade.

Processar
\\00:Processar//\\01.01:linha1//\\01.02:linha2//\\01.03:linha3//\\02.01:linha1=1//\\02.02:linha2=2//\\02.03:linha3=3//
...Podem haver mais linhas, deve-se analisar esta quantidade.

Nas duas opções acima o programa precisa interpretar da seguinte forma:

->Caso seja o status “Aguardando”:
Exibir na tela, obedecendo as quebras de linha:
_____________________________________
Linha1
Linha2
Linha3
...Demais Linhas abaixo
_____________________________________
O botão abaixo do texto deve ser NÂO clicavel e exibir o conteúdo do parâmetro “TextoAguardando”









->Caso seja o status “Processar”:
Exibir na tela, obedecendo as quebras de linha:
_____________________________________
Linha1
Linha2
Linha3
...Demais Linhas abaixo
_____________________________________
O botão abaixo do texto deve ser clicavel e exibir o conteúdo do parâmetro “TextoBotaoProcessar”

Criar um arquivo, no caminho ‘CriarArquivoTemp’ com base nos parâmetros do arquivo ‘config.ini’, obedecendo as quebras de linha:
_____________________________________
Linha1=1
Linha2=2
Linha3=3
...Demais Linhas abaixo
_____________________________________


Ao clicar no botão “TextoBotaoProcessar” ele passa a não ser mais clicavel e exibe o texto do parâmetro “TextoAguardando”,  o arquivo criado e especificado em “CriarArquivoTemp” é renomeado para “RenomearArquivoTemp”.

Neste momento se aguarda um arquivo de resposta que é o especificado em “AguardarArquivo”.

Deve-se criar um timeout do tempo especificado em “TimeOutSegundos” para que se não houver nenhuma resposta pelo tempo especificado o programa recomece o processo e recarregue a pagina web definida em “ServidorIni”.

Se houver a resposta com a criação do arquivo “AguardarArquivo” o programa lê o conteúdo do arquivo que sempre é no formato “parametro=conteúdo” com várias linhas seguindo este padrão e deve criar um link colocando cada linha em um GET. Ex.:

Arquivo de resposta é:
_____________________________________
Linha1=linha1
Linha2=linha2
Linha3=linha3
...Demais Linhas abaixo
_____________________________________


Deve ser acessada a página web “ServidorResp“ + cada linha do arquivo em um get “&linha1=1”. Ex.:

http://site.com/resp.php?id=id&linha1=linha1&linha2=linha2&linha3=linha3 ...Demais Linhas na sequencia

Ao enviar este parâmetro deve-se aguardar a resposta “Sucesso” do site web pelo tempo definido no parâmetro “TimeOutSegundos”, caso ela não apareça deve se exibir na tela a informação de “Servidor Indisponível, tente mais tarde” e o botão abaixo da tela deve apresentar o conteúdo do parâmetro “TextoBotaoReiniciar” e ao ser clicado o processo é reiniciado:





Status Sucesso:
[ ?xml version="1.0" encoding="UTF-8"?>
[ urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
[status>Sucesso [ /status>
[tela>
[ linha1>Linha 1[/ linha1>
[ linha2>Linha 2[/ linha2>
[ linha3>Linha 3[/ linha3>
[ /tela>
[ /urlset>

Ou:
\\00:Sucesso//\\01.01:linha1//\\01.02:linha2//\\01.03:linha3//


Em todas estas etapas que necessitam de acesso ao site web deve- se verificar 2 hipóteses:
1 – O link do site estar fora do ar, então deve se exibir na tela a informação de “Servidor Indisponível, tente mais tarde” e o botão abaixo da tela deve apresentar o conteúdo do parâmetro “TextoBotaoReiniciar” e ao ser clicado o processo é reiniciado;
2 – O site web “ServidorIni” não exibir os parâmetros esperados, como “Aguardando” ou “Processar”, então deve se exibir na tela a informação “Acesso Negado, entre em contato com o administrador” e o botão abaixo da tela deve apresentar o conteúdo do parâmetro “TextoBotaoReiniciar” e ao ser clicado o processo é reiniciado.

Categoria TI e Programação
Subcategoria Aplicativos desktop
Qual é o alcance do projeto? Criar um novo aplicativo
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Experiência nesse tipo de projeto Não (Eu nunca gerenciei esse tipo de projeto)
Plataformas exigidas Windows

Prazo de Entrega: 12 de Maio de 2018

Habilidades necessárias