A janela ativa (programa) perde inesperadamente o foco no Windows 7

15

Algo está mudando (roubando) o foco da minha janela ativa (programa ativo) no meu Windows, como estou usando atualmente.

Eu tenho o mesmo problema descrito em esta pergunta , com algumas exceções:

  1. Eu observei esse comportamento em (pelo menos) dois computadores diferentes, portanto, isso não é específico de uma máquina.

  2. Um dos computadores mencionados tem o Windows 7 HE de 64 bits, outro tem o Windows 7 Pro de 32 bits, portanto, esse problema não é específico de uma versão específica do Windows ou de uma plataforma de hardware específica.

  3. Às vezes, o foco é perdido para sempre (você precisa clicar na janela para continuar a usá-lo), às vezes ele é transferido para outro processo de segundo plano (?) e retorna após 2-3 segundos.

  4. Não tenho instalado nada de novo em nenhum desses computadores nas últimas semanas (exceto no Windows Update e em outras atualizações automáticas, como a atualização automática do navegador Google Chrome) e Os probles certamente mencionados começaram a acontecer muitos dias após a última instalação .

O comportamento atual do meu computador é realmente estranho e a coisa toda se torna irritante. Exemplos:

  1. Estou selecionando um texto no Chrome e realmente vejo que a cor da seleção muda de azul (seleção em janelas ativas) para cinza (seleção na janela inativa).

  2. Estou editando alguns documentos no Word, Notepad ++ ou um e-mail no Gmail no Chrome e o processo de edição pára por alguns segundos (quando o foco muda) para finalizar permanentemente (foco perdido para sempre).

Eu tenho ativo, atualizado e trabalhando em Microsoft Security Essentials e ele não reporta nada incomum.

Tenho a sensação de que isso ocorre com mais frequência no Google Chrome. No começo eu estava tão certo, que eu estava quase pronto para acusar algumas das últimas atualizações deste navegador. Mas aconteceu que percebi isso com frequência incomum no Chrome, porque esse é meu programa mais usado.

Alguém tem ou teve problemas semelhantes ou tem alguma ideia, o que pode estar causando isso ou como corrigir isso?

    
por trejder 30.01.2014 / 11:03

18 respostas

14

Como and31415 me aconselhou, dei uma olhada cuidadosa no que está na minha guia Startup do programa msconfig , mas não achei nada incomum.

Agora está claro que isso é 99% causado por algum programa externo (embora não tenha sido notado antes e embora eu não tenha instalado nada novo recentemente), não pelo Windows. Este é o ponto mais importante para mim aqui.

Eu pesquisei um pouco mais no Google e obtive algumas idéias / conselhos, a saber, que eu deveria tentar pressionar Alt + F4 imediatamente depois que eu notar um roubo de foco. Isso deve sair do processo que poderia causar essa discrição de foco. Então, eu posso tentar usar Process Monitor do pacote Sysinternals para rastrear o processo que acabou de sair.

Isso pode me dar uma ideia do que está causando esse problema.

    
por 31.01.2014 / 09:03
9

Eu programei um programa em C # para monitorar processos flutuantes. Aqui está o código, se alguém precisar descobrir qual processo está causando esse problema.

using System;
using System.Diagnostics;
using System.Linq;

namespace ProcessMonitor
{
    class Program
    {
        static void Main(string[] args)
        {
            var lastPros = Process.GetProcesses().Select((x) => x.Id).ToList();
            var oldProcessList = Process.GetProcesses();
            while (true)
            {
                var processlist = Process.GetProcesses();

                var currentPros = processlist.Select(x => x.Id).ToList();
                var diff = lastPros.Except(currentPros).ToList();
                Console.ForegroundColor = ConsoleColor.Red;

                var pro = oldProcessList.Where(x => diff.Contains(x.Id)).ToList();

                if (diff.Count == 0)
                {
                    pro = processlist.Where((x) => diff.Contains(x.Id)).ToList();
                    diff = currentPros.Except(lastPros).ToList();
                    Console.ForegroundColor = ConsoleColor.Green;
                    pro = processlist.Where((x) => diff.Contains(x.Id)).ToList();
                }
                foreach (var oldPid in diff)
                {
                    Console.Write("PID {0}", oldPid);
                    try
                    {
                        Console.WriteLine(" name {0}", pro.Where((x) => x.Id == oldPid).ToList()[0].ProcessName);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($" Hit exception {e}");
                    }
                }
                if (diff.Count > 0)
                {
                    lastPros = currentPros;
                    oldProcessList = processlist;
                }
                System.Threading.Thread.Sleep(100);
            }
        }
    }
}

Amostra de saída mostrando o início do processo (verde) e o término (vermelho)

    
por 17.02.2016 / 16:36
4

No meu caso, foi wermgr.exe (relatório de erros do Windows) iniciado novamente e novamente. Eu segui a solução abaixo para impedir que ela fosse iniciada automaticamente e isso resolveu o problema.

  1. Botão Iniciar - > Na caixa de pesquisa, digite Centro de ação - > Digite .
  2. Clique na seta ao lado de Manutenção para expandir.
  3. Em Verifique se há soluções para relatórios de problemas , clique em Configurações .
  4. Clique em Alterar configurações de relatório para todos os usuários .
  5. Verifique o botão de opção ao lado Cada vez que um problema ocorre, pergunte antes de verificar a solução .
  6. OK, saia clicando em OK.
por 04.04.2016 / 19:02
3

O foco provavelmente é roubado por uma tarefa em segundo plano com bugs. Ele abre uma janela, que rouba o foco e é fechada muito rapidamente, mas o foco não retorna. Ultimamente, o Microsoft Office tinha um bug .

Para descobrir esses processos, você pode usar as ferramentas como Window Focus Logger ( mirror ) ou um programa C # personalizado semelhante a Process Monitor :

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;

namespace ProcessMonitor
{
    class Program
    {
        const int pollDelay = 100;

        static void Main(string[] args)
        {
            var lastProcesses = GetDescriptions();
            while (true)
            {
                System.Threading.Thread.Sleep(pollDelay);
                var now = DateTime.Now;
                var processes = GetDescriptions();

                var started = processes.Except(lastProcesses);
                var stopped = lastProcesses.Except(processes);

                foreach (var p in started)
                {
                    Print(now, p, ConsoleColor.Green);
                }
                foreach (var p in stopped)
                {
                    Print(now, p, ConsoleColor.Red);
                }

                lastProcesses = processes;
            }
        }

        static void Print(DateTime dateTime, ProcessDescription process,
            ConsoleColor color)
        {
            Console.ForegroundColor = color;
            Console.WriteLine("{0:hh\:mm\:ss\.ff}\tPID {1}\t{2}",
                dateTime.TimeOfDay, process.Id, process.Description);
            Console.ResetColor();
        }

        static List<ProcessDescription> GetDescriptions()
        {
            return Process.GetProcesses().Select(x => GetDescription(x)).ToList();
        }

        static ProcessDescription GetDescription(Process p)
        {
            int pid = -1;
            string description;
            try
            {
                pid = p.Id;
                description = p.ProcessName;
            }
            catch (Exception e)
            {
                description = "Hit exception " + e;
            }
            return new ProcessDescription { Id = pid, Description = description };
        }

        struct ProcessDescription
        {
            public int Id;
            public string Description;

            public override bool Equals(object obj)
            {
                return obj != null && Id == ((ProcessDescription)obj).Id;
            }
            public override int GetHashCode()
            {
                return Id.GetHashCode();
            }
        }
    }
}

Versão polida e corrigida do código fornecido por Omar Alshaker . Também não requer o C # 6. Requer .NET 3.5 ou mais recente.

Você pode compilá-lo usando o compilador C # ( csc.exe ) que vem com a instalação do .NET Framework e executar o executável resultante para obter um registro em tempo real dos processos que começam (verde) ou final (vermelho). Use Ctrl + C para finalizá-lo.

Para encontrar o compilador, execute where /R %windir%\Microsoft.NET csc.exe . Escolha a versão mais recente do .NET instalada, não importa se 32b ou 64b. Salve o código C # em Program.cs e compile-o para Program.exe :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe Program.cs
    
por 01.07.2017 / 14:57
2

Eu removi NMBgMonitor.exe dos serviços de inicialização para resolver o problema.

Eu também tive o mesmo problema com a janela do Google Chrome, perdendo o foco por vários segundos e retornando. Ao observar a guia de serviços do gerenciador de tarefas, percebi que sempre que o foco era perdido, o NMBgMonitor estava ativo (tem algo a ver com o Nero).

    
por 30.07.2014 / 06:51
2

A dica de usar Alt+F4 para sair do programa de interrupção funcionou bem. Em vez de rastrear o programa que acabou de sair com SysInternal ' ProcessManager , rastreei o programa da seguinte forma:

  1. Abrir Task manager
  2. Tire uma captura de tela de processos abertos
  3. Mude para Navegador, Correio, etc e "espere na perda de foco"
  4. Pressione Alt+F4 para sair do programa de interrupção
  5. Acesse Task manager e compare processos abertos com captura de tela
  6. O processo agora "ausente" causou o problema

No meu caso, foi twcu.exe , um programa que começa com TP-Link Configuration tool . É usado por varas externas USB-WIFI. Como relatado aqui ( twcu.exe no file.net ) e aqui (twcu.exe em computerbase.de [german] ), TP-Link Configuration tool não é necessário para a própria conexão WIFI. Eu removi do Autostart ( msconfig > system start ), reiniciei o computador e ele ainda se conecta ao WIFI sem falhas - e os problemas de perda de foco se foram!

    
por 20.01.2015 / 21:54
2

no meu caso, e provavelmente todos os casos de pc / laptop da lenovo, o problema era com o svcguihlpr.exe da lenovo que começava a funcionar a cada poucos minutos e tendo o foco sem interface do usuário ... esse processo é o aplicativo Lenovo Access Connections ui para gerenciar redes wi-fi e de banda larga .. eu nunca usei, eu mesmo removi ui da barra de tarefas, mas ainda funciona ...

hoje eu achei que era o problema e desinstalei!

muito divertido ..

a propósito, eu achei fazendo a coisa mais idiota possível, pegando meu telefone, iniciando um vídeo gravando a tela onde eu corri o gerenciador de tarefas, e continuei meu trabalho .. uma vez que o foco perdido eu esperei um segundo, parei o registro e verificado quais processos subiram, svcguihlpr estava no topo por menos de um segundo ..

espero que ajude os outros.

    
por 21.12.2016 / 13:20
2

Eu tive esse problema, achei que o momento era aleatório, mas não foi,

no meu caso, foi tão trivial quanto: wallpaper changes!
Eu tive um slideshow como papel de parede e toda vez que ele muda, o foco vai para o desktop!

Espero que este seja o caso de alguém que leia os comentários e seja simples assim.

(Eu não sei se a microsoft vai consertar isso, já que estou tendo o problema na versão mais recente do windows 10 (1803 - 17134.112))

    
por 16.06.2018 / 00:05
1

Eu tive janela perdendo o foco constantemente também. Leia que alguém conseguiu rastrear WerSvc está causando problema usando um logger. Mesmo que isso seja de fato um Serviço de Relatório de Erros do Windows, mas eu tentei desativá-lo no Gerenciador de Tarefas do Windows - Serviços - Serviços.

Em seguida, o problema de perder o foco parou.

Talvez vocês possam tentar.

    
por 28.11.2014 / 14:32
1

Esse problema me deixou louco! Então eu decidi escrever um programa para me dizer quem ou o que está tirando o foco do meu programa. Muito chato quando você está jogando Age of Empires e o jogo vai para a área de trabalho aleatoriamente.

Aqui estão as descobertas ....

Verizon! Sim, eu tinha instalado algum aplicativo auxiliar Verizon e foi o culpado!
Entrar - Painel de controle - > Programas e recursos
e desinstale qualquer coisa relacionada à Verizon.

Eu esqueço os nomes dos programas, geralmente iniciados com um Vz ..., e há um serviço também IW ... Eu sinceramente esqueci, já que eu não podia esperar para matar o que quer que estivesse na minha máquina deles (ele dirigia me que louco), mas quando você desinstalar o aplicativo da Verizon, o problema vai embora.

    
por 08.05.2015 / 05:45
1

No meu caso, resolvi o problema indo ao gerenciador de processos do Windows e verificando se algum programa está sendo iniciado e fechado constantemente. Eu pude perceber que um programa que eu baixei (acho que era chamado de windows 8 start) estava reiniciando a cada 7 segundos. Eu deletei tudo relacionado a ele e funcionou!

    
por 07.08.2015 / 11:13
1

Eu estava tendo o problema da janela ativa perdendo o foco a cada poucos segundos. Eu teria que clicar com o botão esquerdo para continuar digitando. Enlouquecendo.

Notei que o esquema de cores para as áreas ao redor das bordas das janelas do Windows mudava toda vez que acontecia. Parecia fácil e fácil ver a perda de foco sem digitar.

Então, iniciei o gerenciador de tarefas do Windows e cliquei na guia Processos. Depois de observar por um tempo, percebi que o gerente da área de trabalho da Adobe estava saindo e na lista simultaneamente com a perda da mudança de foco da cor.

Eu baixei e reinstalei o aplicativo de desktop da Adobe Creative Cloud. (Nota: não consegui desinstalá-lo, então instalei o download diretamente sobre o existente. Existe um programa especial para desinstalar o Creative Cloud se isso não funcionar.) Isso curou completamente o meu problema.

Para quem tem o Creative Cloud, esse pode ser o programa. Para quem não está, observando a guia de processamento e a mudança de cor ao redor das bordas das janelas, cada perda de foco pode ajudá-lo a encontrar o culpado.

    
por 04.12.2016 / 02:34
1

Eu usei o gerenciador de tarefas para procurar por processos em segundo plano, e o Synaptics Touchpad foi o culpado.

O 'driver' estava ligado constantemente, mas outro processo da Synaptics estava aparecendo a cada poucos segundos e fazendo com que o foco se perdesse.

Eu desinstalei o Synaptics e pronto, sem mais perder o foco!

    
por 27.04.2017 / 12:50
1

No Regedit (mantenha pressionado o botão Iniciar + R e digite regedit), altere o valor HKEY_CURRENT_USER \ Control Panel \ Desktop \ ForegroundLockTimeout de 0 para 30d40. Salve e reinicie o computador.

    
por 20.02.2018 / 08:44
0

Verifique se há um utilitário de backup, como o Gladinet ou o Nuance Cloud Connector. (Ambos usam o mecanismo do Gladinet e esse tipo de problema já era conhecido em 2012.) Eles estão executando uma dll sem janelas / sem tarefa baseada no Explorer.exe.

    
por 24.05.2014 / 00:49
0

Meu Samsung Galaxy S6 estava em constante "atualização do Android" e, quando conectado via USB para carregamento, perdi o problema de foco a cada 10 segundos, mas nenhuma janela do explorador apareceu na frente. Eu mudei a porta usb e selecionei o modo "Usb Charging" do telefone, depois que o problema de foco desapareceu.

Mas o problema constante "Atualizando o Android" ainda está lá e precisa ser resolvido ainda.

    
por 24.05.2017 / 08:49
0

Focus Taker ID identifies the culprit when a window suddenly loses focus to an unknown process.  This can occur when some driver or other piece of software is causing the active window to become inactive.

Ele tem versões de 64 bits e 32 bits e não funciona bem se os dois estiverem confusos. O de 64 bits precisa ser executado na versão de 64 bits. Você apenas abre e vê que perde o foco e lhe dirá o que aconteceu.

    
por 14.06.2018 / 19:37
0

Eu tenho o mesmo problema. Meu caso era um programa do Windows XP que era executado em uma conta de usuário padrão. Ele precisava de direitos elevados de administrador para ser executado. Então, enquanto ele rodava em segundo plano, eu não o via, ele frequentemente roubava o foco da minha janela atual (windows explorer, firefox e outros programas). É muito chato. Eu usei focus.exe por droid feliz para identificar o culpado. Além disso, você pode usar o Windows Focus Logger para o mesmo propósito.

    
por 30.07.2018 / 12:40