Re: [delphi-br] OnExecute e OnStart (TService)
http://eugostododelphi.blogspot.com/search/label/serviço%20do%20windowshttp://eugostododelphi.blogspot.com/search/label/servi%C3%A7o%20do%20windows Amigon, sendo bem ligeiro: O TService nada mais é que uma Thread, portanto, o OnExecute do TService equivale ao Execute de uma Thread. Pela minha experiência não aconselho a programar nada relevante neste OnExecute, criando suas próprias threads para fazer o trabalho. O OnStart ocorre quando o serviço é iniciado, sendo que você pode validar algumas condições, podendo abortar a operação, setando a variável Started para false, e até mesmo retornando um código de erro. Sugiro que tome cuidado. Serviço é uma coisa, aplicação desktop é outra coisa. Não tente misturar os dois mundos. Eu não sei explicar o ServiceType mas acho que sua solução não passa por ai. [As partes desta mensagem que não continham texto foram removidas]
Res: Re: [delphi-br] OnExecute e OnStart (TService)
O meu programa é freeware para uma empresa de manutenção de computadores, a maneira viável que eu e o proprietário encontramos foi disponibilizar uma publicidade em todos os computadores que ele vir a usar meu programa, então eu resolvi colocar a publicidade como serviço. O serviço vai ser executado toda vez que o computador for iniciado sem precisar de algum programa ser instalado no computador da pessoa para tal. A publicidade ficará sendo executada por 5 dias calculado pela data de um arquivo, ou seja, ele pode iniciar o computador quantas vezes quiser, mas só contará pelo cálculo da data no arquivo e não do sistema. Com o serviço fica mais difícil de um leigo vir a remover, já um programa no Run do registro é bem mais fácil, porisso que escolhi fazer um serviço. A janela que vai aparecer é meramente texto e imagem, não faz nada no computador da pessoa, apenas faz a publicidade minha. Não acessa internet nem nada a não ser o que disse. Eu chamo a janela prlo Start. Eu queria saber se o ServiceType em stSystem ele seria executado na inicialização do sistema ou isso não influi em nada. O comando /INSTALL /SILENCE eu coloco na hora que o pessoal está usando meu programa. Daí, o processo será automático? A publicidade ficará na tela por 10 segundos e fecha, mas o serviço ficará ligado, se o usuário permanecer por mais de 24 horas ele aparece novamente. Eu, usando só o OnStart resolve (sem precisar usar o OnExecute)? Como faria para esperar o tempo de 24 horas e fazer o sistema ativar novamente e executar para abrir a janela da publicidade novamente? É só isso que preciso fazer. A rotina de gravar data e hora no arquivo já está ok, só falta a questão do OnExecute e OnStart e a opção do ServiceType o que pode acontecer usando stSystem Grato José Mário Silva Guedes escreveu: http://eugostododelphi.blogspot.com/search/label/servi http://eugostododelphi.blogspot.com/search/label/serviço%20do%20windowshttp://eugostododelphi.blogspot.com/search/label/servi%C3%A7o%20do%20windows http://eugostododelphi.blogspot.com/search/label/servi%C3%A7o%20do%20windows Amigon, sendo bem ligeiro: O TService nada mais é que uma Thread, portanto, o OnExecute do TService equivale ao Execute de uma Thread. Pela minha experiência não aconselho a programar nada relevante neste OnExecute, criando suas próprias threads para fazer o trabalho. O OnStart ocorre quando o serviço é iniciado, sendo que você pode validar algumas condições, podendo abortar a operação, setando a variável Started para false, e até mesmo retornando um código de erro. Sugiro que tome cuidado. Serviço é uma coisa, aplicação desktop é outra coisa. Não tente misturar os dois mundos. Eu não sei explicar o ServiceType mas acho que sua solução não passa por ai. .
Re: Re: [delphi-br] OnExecute e OnStart (TService)
Vamos lá: Você só dará o -install -silent uma vez só. Dai o seu serviço aparecerá no Gerenciador de Serviços: Iniciar-Configurações-Painel de controle-Ferramentas Administrativa-Serviços O OnStart irá ocorrer somente uma vez quando o serviço for iniciado, dai ele fica no OnExecute. O ServiceType não influi em nada no seu problema. O que talvez influa seja o Interactive, que deve estar true para o serviço interagir com o Sistema Operacional. Eu entendi o seu problema e tal. Acho que o Serviço não é a solução. Em outros e-mails vocês estava na dúvida entre TTimer e TThread. Melhor voltar a considerar essas duas opções. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] OnExecute e OnStart (TService)
Mário, então eu devo usar só o evento OnExecute para ficar num loop, setar um variável booleana, se ela estiver True o serviço funciona, se tiver False ela fica no loop esperando ficar True, é isso? Esqueço o OnStart então? Agora, como faço para terminar e remover da memória este serviço até que seja reiniciado o computador? Outra coisa, posso usar o /uninstall de dentro do serviço (pois, coloquei uma opção de remover a publicidade após aparecer 5 vezes)? De posse das info. acima dou por concluído este tópico. Grato pela ajuda pessoal blz. --- Em delphi-br@yahoogrupos.com.br, José Mário Silva Guedes jmariogue...@... escreveu Vamos lá: Você só dará o -install -silent uma vez só. Dai o seu serviço aparecerá no Gerenciador de Serviços: Iniciar-Configurações-Painel de controle-Ferramentas Administrativa-Serviços O OnStart irá ocorrer somente uma vez quando o serviço for iniciado, dai ele fica no OnExecute. O ServiceType não influi em nada no seu problema. O que talvez influa seja o Interactive, que deve estar true para o serviço interagir com o Sistema Operacional. Eu entendi o seu problema e tal. Acho que o Serviço não é a solução. Em outros e-mails vocês estava na dúvida entre TTimer e TThread. Melhor voltar a considerar essas duas opções. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] OnExecute e OnStart (TService)
Vixi, acho que você não entendeu muito do que eu disse. :) Eu acho que você deve abandonar essa idéia. Mas se deseja insistir, vamos lá: No OnExecute, seria algo mais ou menos assim: while not (Self.Terminated) do begin //Faça algo aqui end; O Terminated ficará true quando o serviço receber uma ordem de Stop, que é tratado pelo evento OnStop. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] OnExecute e OnStart (TService)
E aí pessoal... Nunca fiz um serviço para Windows. Gostaria de explicação para estes dois eventos: OnExecute e OnStart O que faz o OnExecute e o OnStart (qual a relação um e o outro, parece que ambos trabalham juntos)? Outra coisa, a propriedade no ObjectInspector StartType poderiam me informar o que cada item representa? Por exemplo, não vou usar um programa para chamar este serviço, queria que ele mesmo fosse executado quando o Windows iniciar, então eu pensei -Acho que colocando o item stSystem o serviço inicia qdo o Windows é iniciado, isso se procede? O meu aplicativo seria chamado de dentro do OnStart. Só mais uma coisinha, após ser fechado meu aplicativo (estou abrindo ele com ShowModal) qual o comando para finalizar o serviço e sair totalmente dele? Grato
Re: [delphi-br] OnExecute e OnStart (TService)
Ta ai: http://www.google.com.br/search?q=servi%C3%A7o+windows+delphiie=utf-8oe=utf-8aq=trls=org.mozilla:pt-BR:officialclient=firefox-a 2009/7/6 embarcadelphi embarcadel...@yahoo.com.br: E aí pessoal... Nunca fiz um serviço para Windows. Gostaria de explicação para estes dois eventos: OnExecute e OnStart O que faz o OnExecute e o OnStart (qual a relação um e o outro, parece que ambos trabalham juntos)? Outra coisa, a propriedade no ObjectInspector StartType poderiam me informar o que cada item representa? Por exemplo, não vou usar um programa para chamar este serviço, queria que ele mesmo fosse executado quando o Windows iniciar, então eu pensei -Acho que colocando o item stSystem o serviço inicia qdo o Windows é iniciado, isso se procede? O meu aplicativo seria chamado de dentro do OnStart. Só mais uma coisinha, após ser fechado meu aplicativo (estou abrindo ele com ShowModal) qual o comando para finalizar o serviço e sair totalmente dele? Grato -- Atenciosamente, Paulo Coutinho. Blog: www.prsolucoes.com/blog Site: www.prsolucoes.com Msn: pa...@prsolucoes.com