O Windows leva mais tempo do que o normal para saber que um arquivo executável foi fechado ou não é usado

1

Okey minha culpa, só culpa minha.

Tentando acelerar um laptop antigo, procurei ajustes de registro e executei muitos deles neste computador. Windows 7 Enterprise, 64 bits.

Eu descobri que alguns desses ajustes não eram muito bons. Por exemplo, um deles faz com que o aplicativo suspenso seja fechado automaticamente. Ou outro comportamento era que, sob condições de pouca memória, ele fechava aplicativos automaticamente.

Então eu fui e tentei revertê-los e aparentemente aconteceu.

Mas meu computador ainda está tendo um comportamento muito estranho. Vou tentar dizer em uma única frase: leva mais tempo do que o normal para o Windows saber que um arquivo executável foi fechado ou não é usado.

Por exemplo, eu tenho um arquivo de lote que compila um arquivo (Delphi), então o compacta, e assina, tudo via lote de comandos do MSDOS. Isso começou a se comportar de maneira estranha, agora depois de copiar o arquivo, muitas vezes recebo erros de acesso negados a esse arquivo. No começo eu pensei que era o antivírus, ou antimalware, ou o VCS que estava bloqueando os arquivos recém-criados, mas não, eu tirei o computador desses softwares e o problema persistiu.

Outro exemplo, coloquei o executável "dummy.exe", digamos um executável independente construído em Delphi, no diretório "c: \ mydirectory". Eu executo o arquivo, do que fechá-lo. Então tentei deletar o arquivo e o Windows me diz que não posso, que o arquivo está aberto ... mas não é, eu fechei. Eu só espero alguns minutos, tente depois e agora funciona.

Qual chave de registro ausente ou alterada pode estar causando esse comportamento?

EDIT 1:

Usando o Handle da Sysinternal, descobri que o processo que bloqueava o meu arquivo era o PID: 4, que é o Kernel e o System do NT .... então, o que realmente está acontecendo aqui! : (

EDIT 2:

Eu acho que tenho certeza qual é o problema, mas ainda não sei como consertar isso. Lembro-me de alguns "tweak" foi relacionado ao UAC. O arquivo acabou de ser criado pelo Delphi sendo executado como Administrador, se eu executar o Prompt de Comando como administrador e executar meu lote para copiar / aspack / sign ele funciona sem problemas. É quando eu executo o lote diretamente clicando duas vezes no arquivo de lote que o bloqueio é disparado.

Além disso, ainda há o outro estranho. Uma pasta recém-criada em que eu solto e executável (digamos notepad.exe), em seguida, executá-lo, em seguida, fechá-lo, mantém bloqueado e não pode ser excluído. Isso não é normal, acabei de verificar em alguns outros computadores.

EDIT 3:

Posso confirmar isso abrindo o Windows Explorer e "exibindo" o diretório onde meu exe e lote residem (mesmo se eu executar meu lote diretamente de uma sessão de prompt CMD aberta anteriormente), isso faz com que os arquivos sejam bloqueado e obtenha: "O processo não pode acessar o arquivo porque está sendo usado por outro processo." Então, é o Windows Explorer visualizando meus arquivos, o que causa esse bloqueio ..... mas novamente, por quê? E extensão do Windows Explorer poderia ser? Eu tenho o backup do Mozy e uso o Tortoise para controle de versão, ambos têm itens instalados no menu "Arquivo".

    
por Craig Stevensson 24.06.2014 / 18:08

1 resposta

1

O problema foi causado pela desativação do serviço Application Experience. Depois de ativá-lo novamente, tudo funciona como deveria. :)

Muito obrigado por ajudar a solucionar esse problema. O uso de "Handle" foi muito útil, porque me ajudou a diminuir os momentos exatos em que os arquivos estavam sendo bloqueados.

Aqui é onde eu acho a pista para resolver este problema: link

    
por 24.06.2014 / 23:43