Активное окно (программа) неожиданно теряет фокус в Windows 7
Что-то смещает (крадет) фокус из моего активного окна (активной программы) в моей Windows, как я сейчас использую.
У меня та же проблема, которая описана в этом вопросе, за некоторыми исключениями:
Я наблюдал это поведение (по крайней мере) на двух разных компьютерах, так что это не зависит от конкретной машины.
На одном из упомянутых компьютеров установлена Windows 7 HE 64-bit, на другом - Windows 7 Pro 32-bit, поэтому эта проблема не относится к конкретной версии Windows или конкретной аппаратной платформе.
Иногда фокус теряется навсегда (приходится нажимать на окно, чтобы продолжить его использовать), иногда он просто переносится на какой-то другой фоновый процесс (?) И возвращается через 2-3 секунды.
Я не устанавливал ничего нового ни на один из этих компьютеров в течение последних нескольких недель (за исключением Центра обновления Windows и других автоматических обновлений, таких как автообновление браузера Chrome), и, конечно же, упомянутые проблемы начали возникать через много дней после последней установки.
Текущее поведение моего компьютера действительно странно, и все это становится раздражающим. Примеры:
Я выделяю некоторый текст в Chrome и на самом деле вижу, что цвет выделения изменяется с синего (выделение в активных окнах) на серый (выделение в неактивном окне).
Я редактирую какой-то документ в Word, Notepad++ или по электронной почте в Gmail в Chrome, и процесс редактирования либо останавливается на несколько секунд (когда смещается фокус), потому что он окончательно завершен (фокус потерян навсегда).
У меня есть активный, обновленный и работающий Microsoft Security Essentials, и он не сообщает ничего необычного.
У меня было ощущение, что это чаще всего происходит в Google Chrome. Сначала я был настолько уверен, что был почти готов обвинить некоторые из последних обновлений этого браузера. Но оказалось, что я заметил это необычно часто в Chrome, потому что это моя наиболее часто используемая программа.
У кого-нибудь есть или были подобные проблемы, или есть идеи, что может быть причиной этого или как это исправить?
21 ответ
Как and31415 посоветовал мне, я внимательно посмотрел на то, что в моем Startup
вкладка msconfig
программа, но ничего необычного не нашел.
Теперь ясно, что это на 99% вызвано какой-то внешней программой (хотя раньше этого не замечали и хотя недавно я не устанавливал ничего нового), а не Windows. Это самый важный момент для меня здесь.
Я немного погуглил и получил несколько идей / советов, а именно, что я должен попытаться нажать 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);
}
}
}
}
Выходной образец, показывающий процесс, начинающийся (зеленый) и заканчивающийся (красный)
Фокус, вероятно, украден ошибочной фоновой задачей. Он открывает окно, которое крадет фокус, и очень быстро закрывается, но фокус не возвращается. В последнее время в Microsoft Office была такая ошибка .
Чтобы обнаружить такие процессы, вы можете использовать такие инструменты, как Window Focus Logger ( зеркало ) или пользовательскую программу на C#, похожую на 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();
}
}
}
}
Полированная и исправленная версия кода, предоставленная Омаром Альшакером . Также не требуется 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) запускался снова и снова. Я следовал приведенному ниже решению, чтобы остановить его автоматический запуск, и это решило проблему.
- Кнопка "Пуск" -> В поле поиска введите " Центр действий" -> " Ввод".
- Нажмите на стрелку рядом с " Обслуживание", чтобы развернуть.
- В разделе " Проверка решений для отчетов о проблемах" нажмите " Настройки".
- Нажмите на Изменить параметры отчета для всех пользователей.
- Установите переключатель рядом с Каждый раз, когда возникает проблема, спрашивайте меня, прежде чем проверять решение.
- ОК выход, нажав ОК.
Подсказка с использованием Alt+F4
Для выхода из программы прерывания работали хорошо. Вместо отслеживания только что вышедшей программы SysInternal
"s ProcessManager
Я проследил программу следующим образом:
- открыто
Task manager
- Сделайте скриншот открытых процессов
- Переключитесь на Браузер, Почту и т. Д. И "дождитесь потери фокуса"
- Нажмите
Alt+F4
выйти из программы прерывания - Идти к
Task manager
и сравнить открытые процессы со скриншотом - Теперь "отсутствующий" процесс вызвал проблему
В моем случае это было twcu.exe
, программа, которая начинается с TP-Link Configuration tool
, Используется внешними WIFI-USB флешками. Как сообщается здесь ( twcu.exe на file.net) и здесь ( twcu.exe на computerbase.de [немецкий]), TP-Link Configuration tool
не требуется для самого соединения WIFI. Я удалил его из автозапуска (msconfig
> system start
), перезагрузил компьютер, и он по-прежнему подключается к WIFI безупречно - и проблемы потери фокуса исчезли!
В моем случае, и, вероятно, во всех случаях, связанных с ПК / ноутбуком lenovo, проблема была в lenovo svcguihlpr.exe, который начинает работать каждые несколько минут и фокусируется без отображения интерфейса... этот процесс представляет собой приложение Lenovo Access Connections, которое предоставляет приятный пользовательский интерфейс для управления Wi-Fi и широкополосные сети.. я никогда не использовал его, я даже удалил его из панели задач, но он все еще работает...
сегодня я обнаружил, что это проблема, и удалил ее!
так весело..
кстати, я нашел это, выполнив самую идиотскую вещь, какую только возможно, взяв свой телефон, запустив видеозапись на экране, где я запускаю диспетчер задач, и продолжаю свою работу.. как только потерял фокус, я ждал секунду, остановил запись проверил, какие процессы пошли вверх, svcguihlpr был на вершине меньше секунды.
надеюсь, это поможет другим.
У меня была эта проблема, я думал, что время было случайным, но это не было,
в моем случае это было так же тривиально, как: смена обоев!
У меня было слайд-шоу в качестве обоев, и каждый раз, когда оно меняется, фокус переходит на рабочий стол!
Я надеюсь, что это может иметь место для кого-то, кто читает комментарии, и это будет так же просто, как это.
(Я не знаю, исправит ли когда-нибудь Microsoft это, так как у меня проблема с последней сборкой Windows 10 (1803 - 17134.112))
Я удалил NMBgMonitor.exe
от запуска сервисов для решения проблемы.
У меня также была та же проблема с окном Google Chrome, которое теряло фокус на несколько секунд, а затем возвращалось. Наблюдая за вкладкой служб диспетчера задач, я заметил, что всякий раз, когда фокус теряется, NMBgMonitor был активен (это как-то связано с Nero).
В Regedit (удерживая кнопку "Пуск" +R, затем введите regedit), измените значение HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout с 0 на 30d40 . Сохраните и перезагрузите компьютер.
Я тоже постоянно терял фокус. Читайте, что кому-то удалось отследить, что WerSvc вызывает проблему с помощью регистратора. Даже если это на самом деле служба отчетов об ошибках Windows, но я попытался отключить ее в диспетчере задач Windows - Службы - Службы.
Тогда проблема потери фокуса прекратилась.
Может быть, вы, ребята, можете попробовать это.
У меня была проблема, когда активное окно теряло фокус каждые несколько секунд. Я должен был бы щелкнуть левой кнопкой мыши, чтобы продолжить печатать. 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, больше не теряя внимания!
Я тоже столкнулся с такой же проблемой. Всякий раз, когда я собираюсь нажать на Chrome или любое окно, кроме окон диспетчера задач, теряет фокус. Я заметил, когда мы перезапускаем процесс исследования Windows из диспетчера задач. Он работает нормально в течение 5–8 секунд. После этого фокус снова теряется. Нам нужно найти виновный процесс в диспетчере задач. В моем случае это был веб-советник Macafee. Я удалил его. Тогда у меня работает нормально.
Для тех, кто испытывает проблему с потерей фокуса вашего окна или с тем, что ваш текст становится выделенным текстом, когда вы делаете паузу в наборе текста: у меня были эти проблемы в течение нескольких месяцев, и хотя это раздражало, я научился с этим жить... так было до тех пор, пока я не наконец нашел виновника! Если вы введете в строке поиска Windows «Просмотр событий», затем развернете «Пользовательские представления» и выберите «Административные события», должно отобразиться множество ошибок, именно эти ошибки приводят к перенаправлению фокуса. Если вы выберете один из них, в разделе «Общие» будут указаны подробности возникшей ошибки. Я скопировал и вставил это сообщение об ошибке в Google и обнаружил, что моя проблема связана с драйвером Broadcom. У вас может быть что-то похожее или то же самое, в любом случае решение было найдено с помощью поиска в Google. В моем конкретном случае все, что мне нужно было сделать, это удалить драйвер Broadcom, и — бац! Задача решена!! Я надеюсь, что это поможет кому-то, у кого возникли подобные проблемы, поскольку я несколько месяцев бился головой о клавиатуру, пытаясь разобраться в этом! Бог благословил!
Проверьте наличие утилиты резервного копирования, такой как Gladinet или Nuance Cloud Connector. (Оба используют движок Gladinet, и такая проблема была им известна уже в 2012 году.) Они запускают dll без окон / без задач, основанное на Explorer.exe.
Мой Samsung Galaxy S6 постоянно находился в состоянии "Обновление Android", и при подключении через USB для зарядки у меня возникали проблемы с фокусировкой каждые 10 секунд, но окно обозревателя не появлялось впереди. После того, как проблема с фокусировкой исчезла, я изменил порт USB и выбрал режим "Зарядка от USB".
Но постоянная проблема "Обновление Android" все еще существует и должна быть решена.
У меня та же проблема. В моем случае это была программа для Windows XP, которая запускалась под стандартной учетной записью пользователя. Ему нужны были повышенные права администратора для запуска. Так что, хотя он работал в фоновом режиме, я не видел его, он часто крал фокус моего текущего окна (проводник Windows, Firefox и другие программы). Это очень раздражает. Я использовал focus.exe счастливым дроидом, чтобы определить виновника. Также вы можете использовать Windows Focus Logger для той же цели.
В случае с моим корпоративным ноутбуком ThinkPad с Windows 10 именно Zoom (в режиме «В гостях») периодически фиксировал фокус (примерно каждую минуту).
Я установил это, открыв диспетчер задач (оставив его работать как приложение переднего плана), увеличив частоту обновлений до «Самая высокая» и отсортировав приложения по использованию ЦП (съёмка не требовалась, просто просмотр).
С той же проблемой я столкнулся. Мой ноутбук немного стар У меня 2 ГБ оперативной памяти и окно 7. После работы в течение часа это происходит каждый раз. Я заметил, что этот случай возникает, когда ноутбук перегревается. Решение: Установите программное обеспечение для автоматической очистки RAM. Прошел месяц после установки автоматического очистителя оперативной памяти, и я никогда не сталкивался с проблемой снова.