Bom dia pessoal. Bem, estou com uma dúvida aqui e, após muito penar procurando material, não encontrei nada que me ajudasse, então venho à vocês pedir uma orientação.
Aqui no meu trabalho precisei criar um serviço Windows, o que foi feito corretamente. Este serviço deverá ser inicializado juntamente com o sistema, o que de fato ocorre. Sempre que o computador é reiniciado, ou em caso de queda de energia, os processos correntes são novamente executados na próxima vez que o computador for ligado.Sua função é monitorar um arquivo texto, gerado pela aplicação principal e, a cada alteração deste arquivo, há parâmetros que são lidos (processo, tempo para execução, tipo de execução, etc) que são carregados em uma estrutura do tipo lista ordenada. Utilizei o utilitário sc.exe, disponível no Windows, para registar esse serviço, porém o mesmo foi registrado com os parâmetros abaixo: SERVICE_NAME: SchedulerBusinessConnectionService TYPE : 110 WIN32_OWN_PROCESS (interactive) STATE : 2 START_PENDING (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x7d0 PID : 2676 FLAGS : Um consenso que cheguei, e que verifiquei posteriormente durante a execução desse serviço, é que não posso pará-lo, pausá-lo e ele ignora completamente o evento OnShutdown. Quando clico em 'Iniciar', no Gerenciador do Computador, item Serviços, o mesmo fica em estado pendente 'START_PENDING'. Utilizando o utilitário sc.exe, não consigo passar os parâmetros stop, pause, continue, etc... Meu problema: No evento OnShutdown(), que não ocorre, o serviço deveria, caso a lista de processos ainda não tivesse sido esvaziada (todos os processos executados) criar um arquivo em disco contendo as informações que estão nesta lista. Na inicialização da máquina, quando o serviço iniciasse, procedimento OnStart() - que fica pendente, conforme listagem acima - , deveria verificar a existência deste arquivo e, em caso positivo, realizar uma leitura sequencial no mesmo e carregar seus dados para a lista de processos. Ao final desta leitura, o arquivo seria excluido. Codifiquei isso tendo em mente que o serviço poderia executar os processos pendentes após a inicialização do computador. Mas a parte boa da história é que a lista é inicializada e carregada corretamente no código que está no evento OnStart() !!! Gostaria de saber com os colegas se alguém já passou por situação semelhante ao criar serviços no Windows, e como poderia contornar esses problemas. NOTA: Para obter mais informações sobre o utilitário sc.exe, abra a ajuda do Windows (F1) e procure por SC. Aparece uma porrada de capacidades documentadas deste programa, mas nenhuma delas me informa como eu poderia alterar meu serviço para que eu pudesse inicializá-lo (OnStart), pará-lo (OnStop), pausá-lo (OnPause), continuá-lo (OnContinue), reinicializá-lo - através do reboot do sistema (OnShutdown). Obrigado a todos antecipadamente. Caso queiram, podem manter contato comigo pelo Messenger : [EMAIL PROTECTED] -------------------------------------------------------------------------------- Atenciosamente: Eduardo Cláudio Nicácio Analista Programador JR. Fábrica 02 - CTIS Informática Tel.: (11) 3156-7115 [EMAIL PROTECTED] [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html