Por que meus aplicativos de execução automática estão agindo de forma estranha no Vista?

StackOverflow https://stackoverflow.com/questions/15805

  •  08-06-2019
  •  | 
  •  

Pergunta

O produto em que estamos trabalhando permite ao usuário configurá-lo facilmente para ser executado automaticamente sempre que o computador for iniciado.Isso é útil porque o produto faz parte do ambiente de trabalho básico da maioria dos nossos usuários.
Esse recurso foi implementado há pouco tempo e por um tempo tudo estava bem, mas quando começamos a testar esse recurso no Vista o produto começou a se comportar de maneira muito estranha na inicialização.Especificamente, nosso produto faz uso de outro produto (vamos chamá-lo de X) que lança sempre que necessita de seus serviços.O problema real é que sempre que o X é iniciado imediatamente após o logon, ele trava ou reporta erros críticos relacionados ao acesso ao disco (isso acontece mesmo quando o X é iniciado diretamente - não através do nosso produto).

Isso acontece sempre que executamos nosso produto registrando-o na tecla “Executar” do registro ou colocando um atalho para ele no “Comece"pasta dentro de"Menu Iniciar", mesmo quando colocamos um atraso de aproximadamente 20 segundos antes de começar a funcionar.Quando alteramos o atraso para 70 segundos, está tudo bem.

Tentamos reproduzir o problema iniciando nosso produto manualmente imediatamente após o login (clicando duas vezes em um atalho colocado na área de trabalho), mas sem sucesso.

Agora, como é possível que aplicativos executados normalmente um minuto após o logon relatem erros tão graves ao iniciar imediatamente após o logon?

Foi útil?

Solução

Este é o efeito de um novo recurso do Vista chamado “Boxing”:O Windows possui vários mecanismos que permitem ao usuário/administrador configurar aplicativos para serem executados automaticamente quando o Windows for iniciado.Esse recurso é usado principalmente para uma destas finalidades:1.Programas que fazem parte do ambiente de trabalho básico do usuário, de modo que a primeira ação que o usuário normalmente executa ao iniciar o computador é iniciá-los.2.Todos os tipos de "agentes" de fundo - skype, messenger, winamp etc.

Quando muitos programas (ou muito pesados) são registrados para serem executados na inicialização, o resultado final é que o usuário não consegue fazer nada nos primeiros segundos/minutos após o login, o que pode ser realmente irritante.Chega o recurso "Boxing" do Vista:

Resumidamente, o Vista força todos os programas invocados através da tecla Run a operarem em baixa prioridade durante os primeiros 60 segundos após o login.Isso afeta tanto Prioridade de E/S (definida como Muito Baixa) e prioridade da CPU.Solicitações de E/S de prioridade muito baixa não passam pelo cache de arquivos, mas vão diretamente para o disco.Portanto, eles são muito mais lentos que a E/S normal.A duração do período de boxe é definida pelo valor do registro:"HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps\Delay_Sec".

Para uma explicação mais detalhada consulte aqui e aqui

Outras dicas

O programa provavelmente precisa de mais informações em suas propriedades.Ele precisa "Executar como", em vez de apenas executar.

Talvez esta aplicação deva ser desenvolvida como um serviço, em vez de um programa a ser lançado, ou você poderia ter um serviço que lança o programa quando é determinada a melhor janela de oportunidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top