Активное окно (программа) неожиданно теряет фокус в Windows 7

Что-то меняет фокус из моего активного окна (активной программы) в моей Windows, поскольку я в настоящее время его использую.

У меня такая же проблема, как описано в этом вопросе , за некоторыми исключениями:

  1. Я наблюдал это поведение на (по крайней мере) двух разных компьютерах, поэтому это не зависит от машины.

  2. Один из упомянутых компьютеров имеет 64-разрядную версию Windows 7 HE, у которой 32-разрядная версия Windows 7 Pro, поэтому эта проблема не специфична для конкретной версии Windows или конкретной аппаратной платформы.

  3. Иногда фокус теряется навсегда (нужно щелкнуть по окну, чтобы продолжить его использование), иногда он просто переносится на другой фоновый процесс (?) И возвращается примерно через 2-3 секунды.

  4. Я не устанавливал ничего нового ни на одном из этих компьютеров за последние несколько недель (за исключением Windows Update и других автоматических обновлений, таких как автоматическое обновление браузера Chrome), и, безусловно, упомянутые проблемы начали происходить через несколько дней после последней установки .

Текущее поведение моего компьютера действительно странно, и все это становится раздражающим. Примеры:

  1. Я выбираю текст в Chrome и вижу, что цвет выбора меняется с синего (выделение в активных окнах) на серый (выбор в неактивном окне).

  2. Я редактирую какой-либо документ в Word, Notepad ++ или электронную почту в Gmail в Chrome, и процесс редактирования останавливается на несколько секунд (при смене фокуса), который заканчивается навсегда (фокус потерян для хорошего).

У меня есть активные, обновленные и работающие Microsoft Security Essentials, и он не сообщает ничего необычного.

У меня было ощущение, что это чаще всего происходит в Google Chrome. Сначала я был так уверен, что почти готов обвинить некоторые последние обновления этого браузера. Но оказалось, что я заметил это необычно часто в Chrome, потому что это моя наиболее часто используемая программа.

Кто-нибудь имеет или имел подобные проблемы или имел какую-либо идею, что может быть причиной этого или как это исправить?

    Как мне посоветовал and31415 , я внимательно посмотрел, что находится на моей вкладке « Startup » программы msconfig , но не нашел ничего необычного.

    Теперь ясно, что это 99% вызвано какой-то внешней программой (хотя и не замечено раньше, и хотя я недавно не устанавливал ничего нового), а не Windows. Для меня это самый важный момент.

    Я немного поработал с Google и получил некоторые идеи / советы, а именно, что я должен попытаться нажать Alt + F4 сразу же после того, как я заметил кражу фокуса. Это должно выйти из процесса, который может вызвать скрытый фокус. Затем я могу попытаться использовать Process Monitor из пакета Sysinternals , чтобы проследить процесс, который только что вышел.

    Это может дать мне некоторое представление о том, что вызывает эту проблему.

    Я запрограммировал программу C # для отслеживания флуктуирующих процессов. Вот код, если кто-то должен выяснить, какой процесс вызывает эту проблему.

     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); } } } } 

    Выходной образец, показывающий начало процесса (зеленый) и завершающий (красный)

    Выходной образец

    В моем случае это было то, что wermgr.exe (отчет об ошибках Windows) запускался снова и снова. Я выполнил следующее решение, чтобы остановить его автоматически, и это решило проблему.

    1. Кнопка « Пуск» -> В поле поиска введите Центр действий -> Ввод .
    2. Нажмите на стрелку рядом с Maintenance для расширения.
    3. В разделе « Проверка решений проблемных отчетов» нажмите « Настройки» .
    4. Нажмите « Изменить параметры отчета» для всех пользователей .
    5. Установите переключатель рядом с пунктом «Каждый раз, когда возникает проблема», спросите меня, прежде чем проверять решение .
    6. О'кей, если вы нажмете OK.

    Я удалил NMBgMonitor.exe из служб запуска, чтобы решить проблему.

    У меня также была такая же проблема, когда окно Google Chrome теряло фокус в течение нескольких секунд, а затем возвращалось. Просмотрев вкладку служб диспетчера задач, я заметил, что всякий раз, когда фокус был потерян, NMBgMonitor был активным (это имеет какое-то отношение к Nero).

    Я тоже постоянно терял фокус фокуса. Прочтите, что кому-то удалось отслеживать WerSvc, возникает проблема с помощью регистратора. Даже если это фактически служба отчетов об ошибках Windows, но я попытался отключить ее в диспетчере задач Windows – Services – Services.

    Затем проблема потери фокуса остановилась.

    Может быть, вы, ребята, можете попробовать.

    Подсказка с использованием Alt+F4 для выхода из программы прерывания работала хорошо. Вместо отслеживания только что завершившейся программы с помощью ProcessManager SysInternal , я проследил программу следующим образом:

    1. Открыть Task manager
    2. Сделайте снимок экрана открытых процессов
    3. Переключитесь на браузер, почту и т. Д. И «подождите, пока вы потеряете фокус»
    4. Нажмите Alt+F4 чтобы выйти из программы прерывания
    5. Перейдите в Task manager и сравните открытые процессы с скриншотом
    6. Теперь «отсутствующий» процесс вызвал проблему

    В моем случае это была twcu.exe , программа, которая начинается с TP-Link Configuration tool . Он используется внешними палочками WIFI-USB. Как сообщается здесь ( twcu.exe at file.net ) и здесь ( twcu.exe at computerbase.de [german] ), TP-Link Configuration tool не нужен для самого WIFI-соединения. Я удалил его из Autostart ( system start msconfig ), перезапустил компьютер и по-прежнему подключился к WIFI безупречно – и проблемы с потерей фокуса исчезли!

    Эта проблема сводила меня с ума! Поэтому я решил написать программу, чтобы рассказать мне, кто или что отвлекает внимание от моей программы. Настоящий раздражает, когда вы играете Age of Empires, и игра идет на рабочий стол случайным образом.

    Вот выводы …

    Verizon! Да, я установил приложение-помощник Verizon, и это было преступником!
    Входить – Панель управления -> Программы и функции
    И удалите все, что связано с Verizon.

    Я забыл названия программ, обычно начинал с Vz …, и есть сервис тоже IW … Я честно забываю, так как я не мог дождаться, чтобы убить все, что было на моей машине, от них (это сводило меня с ума ), Но при удалении приложения Verizon проблема исчезает.

    В моем случае я исправил проблему, перейдя в диспетчер процессов Windows и проверяя, постоянно ли запущены и закрыты какие-либо программы. Я мог заметить, что программа, которую я загрузил (я думаю, что она называлась стартом Windows 8), перезапускалась каждые 7 секунд. Я удалил все, что с ним связано, и это сработало!

    У меня была проблема с активным окном, теряющим фокус каждые несколько секунд. Мне пришлось бы щелкнуть левой кнопкой мыши, чтобы продолжать печатать. Maddening.

    Я заметил, что цветовая схема для областей вокруг краев окон будет меняться каждый раз, когда это произойдет. Казалось, и простой способ увидеть потерю фокуса, не набрав на самом деле.

    Итак, я запустил диспетчер задач Windows и щелкнул вкладку процессов. Посмотрев на некоторое время, я увидел, что менеджер рабочего стола Adobe сходит и в списке одновременно с потерей цвета смены цвета.

    Я загрузил и заново установил настольное приложение Adobe Creative Cloud. (Примечание: я не смог удалить его, поэтому я просто установил загрузку прямо поверх существующей. Существует специальная программа для удаления Creative Cloud, если это не работает.) Это полностью излечило мою проблему.

    Для тех, у кого есть Creative Cloud, это может быть программа. Для тех, у кого нет, просмотр вкладки обработки и изменение цвета по краям окон с каждой потерей фокуса может помочь вам найти виновника.

    Фокус, вероятно, украден из-за багги фоновой задачи. Он открывает окно, которое крадет фокус, и оно очень быстро закрывается, но фокус не возвращается. В последнее время в Microsoft Office появилась такая ошибка .

    Чтобы обнаружить такие процессы, вы можете использовать такие инструменты, как Window Focus Logger или обычную C # -программу, похожую на Process Monitor :

     using System; 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 processes = GetDescriptions(); var started = processes.Except(lastProcesses); var stopped = lastProcesses.Except(processes); foreach (var p in started) { Print(p, ConsoleColor.Green); } foreach (var p in stopped) { Print(p, ConsoleColor.Red); } lastProcesses = processes; } } static void Print(ProcessDescription process, ConsoleColor color) { Console.ForegroundColor = color; Console.WriteLine("PID {0}:\t{1}", 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(); } } } } 

    Полированная и исправленная версия кода, предоставленная Омаром Альшакером . Также не требуется C # 6. Требуется .NET 3.5 или новее.

    Вы можете скомпилировать его с помощью компилятора C # ( csc.exe ), который поставляется с вашей установкой .NET Framework, и запустить результирующий исполняемый файл, чтобы получить журнал csc.exe в режиме реального времени (зеленый) или конец (красный). Используйте Ctrl + C, чтобы закончить его.


    Чтобы найти компилятор, запустите where /R %windir%\Microsoft.NET csc.exe . Выберите один из последней версии .NET, независимо от того, 32b или 64b. Сохраните код C # в Program.cs и скомпилируйте его в Program.exe :

     C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe Program.cs 

    Проверьте наличие резервной утилиты, такой как Gladinet или Nuance Cloud Connector. (Оба используют движок Gladinet, и такая проблема была им известна уже в 2012 году.) Они работают с dll без окон или без задач, основанных на Explorer.exe.

    В моем случае, и, вероятно, все ноутбуки lenovo pc / laptop, проблема была связана с lenovo svcguihlpr.exe, которые начинают работать каждые несколько минут и сфокусированы без отображения пользовательского интерфейса … этот процесс – это приложение Lenovo Access Connections, которое дает хороший ui для управления Wi-Fi и широкополосных сетей .. я никогда не использовал его, я даже удалил его с панели задач, но он все еще работает …

    Сегодня я обнаружил, что это была проблема и удалил ее!

    так весело..

    Кстати, я нашел его, сделав самую идиотскую вещь, взяв мой телефон, запустив видеозапись экрана, я запустил диспетчер задач и продолжил свою работу. Как только фокус потерял, я ждал секунды, остановил запись и Проверял, какие процессы переместились, svcguihlpr был на вершине менее чем за секунду.

    Надеюсь, что это поможет другим.

    Я использовал диспетчер задач для поиска фоновых процессов, и Synaptics Touchpad был виновником.

    «Драйвер» постоянно включался, но через Syncics возникал еще один процесс, который заставлял фокус теряться.

    Я удалил Synaptics и эй престо, больше не теряя внимания!

    Мой Samsung Galaxy S6 находился в постоянном «обновлении Android», и когда он подключался через USB для зарядки, у меня проблема с потерянным фокусом каждые 10 секунд, но окно с проводником не появилось впереди. Я изменил порт USB и выбрал режим «Usb Charging» с телефона, после чего проблема фокуса исчезла.

    Но постоянная проблема «Обновление Android» все еще существует и ее необходимо решить еще.

    Давайте будем гением компьютера.