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


Realizado
Descrição:
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

C C# C++ DOS Windows Aplicativos desktop

USD 100 - 250

Orçamento

4

Propostas

5

Freelancers interessados

Publicado: Há um ano

Prazo de Entrega: 10 dias

Crie seu próprio projeto

Você está procurando um freelancer para realizar um projeto parecido? Crie seu próprio projeto e você receberá ofertas dos melhores freelancers.


Freelancers que já se candidataram para este trabalho

Alex15 anos de experiência desenvolvendo aplicações desktop (Windows e Linux). Crio desde aplicações simples a aplicações multi camadas Client/Server com dados na nuvem. Mais detalhes