Não é culpa do TaskKill. Enquanto você abriu duas janelas do Gerenciador de Arquivos, isso não significa necessariamente que você abriu dois processos separados para cada um.
Uma das configurações que podem afetar sua situação pode ser encontrada em:
Opções de pasta → guia Visualizar → Configurações avançadas → "Iniciar janelas de pastas em um processo separado"
Esta configuração tem os seguintes efeitos:
- Se esta caixa de seleção não for verificada, na maioria das vezes, as janelas do Gerenciador de Arquivos são abertas no mesmo processo
explorer.exe
que hospeda a barra de tarefas e o menu Iniciar. O título da janela deste processo é fixo. Se você matar esse processo, todo o shell do Windows desaparecerá. - Se esta caixa de seleção estiver marcada, o processo que hospeda a barra de tarefas e o menu Iniciar é sempre separado do processo que hospeda suas janelas do Gerenciador de Arquivos. Mas ainda assim, isso não significa que você obtenha um processo
explorer.exe
separado para cada janela do Gerenciador de Arquivos. Eu testei isso no Windows Server 2008 R2 e Windows 10 1709. Eu sempre recebo exatamente umexplorer.exe
processo para todas as minhas janelas do Gerenciador de Arquivos e uma outraexplorer.exe
para minha barra de tarefas e menu Iniciar. OWINDOWTITLE
desse processo é sempre o título da janela do Explorador de Arquivos que foi aberta por último.
Um motivo pelo qual o subprocess.Popen()
abre um processo separado do File Explorer pode ser que você esteja executando um Python de 32 bits em um computador de 64 bits; nesse caso, subprocess.Popen()
apenas abre um explorer.exe
de 32 bits. (Isso não acontece em todas as versões do Windows, mas, novamente, você não especificou nenhuma.) Outro motivo é a chamada DCOM fora do processo que sempre me engana.
Mas a essência disso é:
- Janela ≠ Processo