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

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

У меня та же проблема, которая описана в [этом вопросе](/questions/202557/chto-to-kradet-fokus-iz-aktivnogo-okna), за некоторыми исключениями:

1. Я наблюдал это поведение (по крайней мере) на двух разных компьютерах, так что это не зависит от конкретной машины.
2. На одном из упомянутых компьютеров установлена Windows 7 HE 64-bit, на другом - Windows 7 Pro 32-bit, поэтому эта проблема не относится к конкретной версии Windows или конкретной аппаратной платформе.
3. Иногда фокус теряется навсегда (приходится нажимать на окно, чтобы продолжить его использовать), иногда он просто переносится на какой-то другой фоновый процесс (?) И возвращается через 2-3 секунды.
4. **Я не устанавливал ничего нового ни на один из этих компьютеров в течение последних нескольких недель** (за исключением Центра обновления Windows и других автоматических обновлений, таких как автообновление браузера Chrome), **и, конечно же, упомянутые проблемы начали возникать через много дней после последней установки**.

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

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

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

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

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

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

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

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

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

 .detail-content-adblock { width: 336px; height: 280px; }
 @media(min-width: 768px) { .detail-content-adblock { width: 728px; height: 90px; } }
 @media(min-width: 992px) { .detail-content-adblock { width: 360px; height: 300px; } }
 @media(min-width: 1083px) { .detail-content-adblock { width: 728px; height: 90px; } }
 

 (adsbygoogle = window.adsbygoogle || []).push({});
 



Я запрограммировал программу на 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);
            }
        }
    }
}

```

 .detail-content-adblock { width: 336px; height: 280px; }
 @media(min-width: 768px) { .detail-content-adblock { width: 728px; height: 90px; } }
 @media(min-width: 992px) { .detail-content-adblock { width: 360px; height: 300px; } }
 @media(min-width: 1083px) { .detail-content-adblock { width: 728px; height: 90px; } }
 

 (adsbygoogle = window.adsbygoogle || []).push({});
 

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

![Выходной образец](/images/1a5cfa2728ad77bb164fc37a122a89bbf541bb9e.png "Выходной образец")



 Фокус, вероятно, украден ошибочной фоновой задачей. Он открывает окно, которое крадет фокус, и очень быстро закрывается, но фокус не возвращается. В последнее время в [Microsoft Office была такая ошибка](https://answers.microsoft.com/en-us/msoffice/forum/msoffice_officeinsider-mso_win10/officebackgroundtaskhandlerregistration-flashes-a/2600497e-78e4-41a1-9040-461cd2c3ea13) . 

 Чтобы обнаружить такие процессы, вы можете использовать такие [инструменты,](https://softwarerecs.stackexchange.com/q/43334/7307) как [Window Focus Logger](http://www.adminscope.com/downloads/window-focus-logger/) ( [зеркало](https://web.archive.org/web/20171230171603/http://www.adminscope.com:80/downloads/window-focus-logger/) ) или пользовательскую программу на C#, похожую на [Process Monitor](https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx) : 

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

```
 Полированная и исправленная версия [кода, предоставленная Омаром Альшакером](/questions/552245/aktivnoe-okno-programma-neozhidanno-teryaet-fokus-v-windows-7/552256#552256) . Также не требуется C# 6. Требуется .NET 3.5 или новее. 

 Вы можете скомпилировать его с помощью компилятора C# ( `csc.exe` ), который поставляется с вашей установкой .NET Framework и запускает полученный исполняемый файл, чтобы получить журнал в реальном времени процессов, которые начинаются (зеленый) или заканчиваются (красный). Используйте `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

```



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

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



У меня была эта проблема, я думал, что время было случайным, но это не было,

в моем случае это было так же тривиально, как: **смена обоев!**  
 У меня было слайд-шоу в качестве обоев, и каждый раз, когда оно меняется, фокус переходит на рабочий стол!

Я надеюсь, что это может иметь место для кого-то, кто читает комментарии, и это будет так же просто, как это.

(Я не знаю, исправит ли когда-нибудь Microsoft это, так как у меня проблема с последней сборкой Windows 10 (1803 - 17134.112))



Я удалил `NMBgMonitor.exe` от запуска сервисов для решения проблемы.

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



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

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

В моем случае это было `twcu.exe`, программа, которая начинается с `TP-Link Configuration tool`, Используется внешними WIFI-USB флешками. Как сообщается здесь ( [twcu.exe на file.net](http://www.file.net/prozess/twcu.exe.html)) и здесь ( [twcu.exe на computerbase.de [немецкий]](https://www.computerbase.de/forum/showthread.php?t=1317205)), `TP-Link Configuration tool` не требуется для самого соединения WIFI. Я удалил его из автозапуска (`msconfig` > `system start`), перезагрузил компьютер, и он по-прежнему подключается к WIFI безупречно - и проблемы потери фокуса исчезли!



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

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

так весело..

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

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



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

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

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

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

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



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



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

Вот выводы....

Verizon! Да, я установил какое-то вспомогательное приложение Verizon, и оно было виновником!  
Зайдите в - Панель управления -> Программы и компоненты  
и удалите все, что связано с Verizon.

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



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

"Драйвер" был включен постоянно, но каждые несколько секунд появлялся еще один процесс, запускаемый Synaptics, что приводило к потере фокуса.

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



В Regedit (удерживая кнопку "Пуск" +R, затем введите regedit), измените значение HKEY\_CURRENT\_USER\Control Panel\Desktop\ForegroundLockTimeout с 0 на 30d40 . Сохраните и перезагрузите компьютер.



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

Тогда проблема потери фокуса прекратилась.

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



У меня та же проблема. В моем случае это была программа для Windows XP, которая запускалась под стандартной учетной записью пользователя. Ему нужны были повышенные права администратора для запуска. Так что, хотя он работал в фоновом режиме, я не видел его, он часто крал фокус моего текущего окна (проводник Windows, Firefox и другие программы). Это очень раздражает. Я использовал focus.exe [счастливым дроидом](http://www.happydroid.com/focus), чтобы определить виновника. Также вы можете использовать [Windows Focus Logger](http://www.softpedia.com/get/System/System-Info/Window-Focus-Logger.shtml) для той же цели.



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

Но постоянная проблема "Обновление Android" все еще существует и должна быть решена.



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



С той же проблемой я столкнулся. Мой ноутбук немного стар У меня 2 ГБ оперативной памяти и окно 7. После работы в течение часа это происходит каждый раз. Я заметил, что этот случай возникает, когда ноутбук перегревается. Решение: Установите программное обеспечение для автоматической очистки RAM. Прошел месяц после установки автоматического очистителя оперативной памяти, и я никогда не сталкивался с проблемой снова.