Windows 7에서 활성 창 (프로그램)이 예기치 않게 초점을 잃음


23

현재 사용중인 Windows의 활성 창 (활성 프로그램)에서 포커스가 이동하고 있습니다 (스틸 링).

이 질문에 설명 된 것과 동일한 문제 가 있지만 몇 가지 예외가 있습니다.

  1. 적어도 두 대의 다른 컴퓨터에서이 동작을 관찰 했으므로 컴퓨터별로 다릅니다.

  2. 언급 된 컴퓨터 중 하나에는 Windows 7 HE 64 비트가 있고 다른 컴퓨터에는 Windows 7 Pro 32 비트가 있으므로이 문제는 특정 버전의 Windows 또는 특정 하드웨어 플랫폼에만 국한되지 않습니다.

  3. 때로는 초점이 잘 유지되지 않기 때문에 (창을 계속 사용하려면 클릭해야 함) 때로는 다른 백그라운드 프로세스 (?)로 이동하여 2-3 초 후에 돌아옵니다.

  4. 지난 몇 주 동안이 컴퓨터에 새로운 것을 설치하지 않았으며 (Windows Update 및 Chrome 브라우저 자동 업데이트와 같은 다른 자동 업데이트 제외) 마지막으로 설치 한 후 며칠 동안 문제가 발생했습니다 .

내 컴퓨터의 현재 동작은 정말 이상하고 모든 것이 성가시다. 예 :

  1. Chrome에서 일부 텍스트를 선택하고 실제로 선택 색상이 파란색 (활성 창에서 선택)에서 회색 (비활성 창에서 선택)으로 바뀐 것을 알 수 있습니다.

  2. Chrome에서 Word, Notepad ++ 또는 Gmail의 전자 메일로 일부 문서를 편집 중이며 편집 프로세스가 몇 초 동안 (포커스 전환시) 영구적으로 종료됩니다 (포커스가 잘 맞지 않음).

Microsoft Security Essentials를 활성화, 업데이트 및 작동 하고 있으며 비정상적인 사항은보고하지 않습니다.

Chrome에서 가장 자주 발생한다는 느낌이 들었습니다. 처음에 나는이 브라우저의 마지막 업데이트를 비난 할 준비가 거의되어 있다고 확신했다. 그러나 가장 많이 사용되는 프로그램이기 때문에 Chrome에서 비정상적으로 자주 나타났습니다.

누구든지 비슷한 문제가 있거나 어떤 아이디어가 있습니까?이 원인은 무엇이고 어떻게 해결할 수 있습니까?


2
안전 모드 (네트워킹 유무)에서도 문제가 발생합니까 ? 시작 msconfig을 클릭하고 시작 탭을 선택 하십시오. 어떤 프로그램이 있습니까?
and31415

1
설명 된 문제를 너무 자주 발생하지 않기 때문에 설명 된 문제를 "잡기"가 어렵습니다. 예를 들어-지난 이틀 동안 흔적이 없습니다. 따라서 안전 모드 에서이 작업 을 "잡기" 위해 며칠을 일해야 했습니다. 그러나 아이디어에 감사드립니다. 또한 아래 답변을 참조하십시오.
trejder

답변:


17

and31415가 조언 했듯이 , 나는 프로그램 Startup탭 에 무엇이 있는지주의 깊게 살펴 msconfig보았지만 이상한 것은 없었습니다.

Windows가 아닌 일부 외부 프로그램 (이전에 알지 못했지만 최근에 새로운 것을 설치하지는 않았지만)으로 인해 이것이 99 %라는 것이 분명합니다. 이것이 여기에서 가장 중요한 포인트입니다.

나는 조금 더 구글을 검색하고 몇 가지 아이디어 / 조언을 얻었습니다. 즉 , 초점을 훔친 직후에 Alt+ 를 눌러야 F4합니다. 이것은이 포커스 스텔스를 유발할 수있는 프로세스를 종료해야합니다. 그런 다음 패키지 에서 사용 Process Monitor하여 Sysinternals방금 종료 한 프로세스를 추적 하려고 할 수 있습니다 .

이 문제의 원인을 알 수 있습니다.


1
에서 서비스 탭을 msconfig선택하고 모든 Microsoft 서비스 숨기기를 활성화합니다 . 그것도 확인하십시오. 유용한 KB 기사는 다음과 같습니다. 백그라운드 프로그램이 게임 또는 프로그램을 방해하는지 확인하려면 새로 시작하십시오 . 또한 이상한 점이 보이지 않더라도 모든 타사 시작 항목 및 서비스를 나열하는 것이 좋습니다.
and31415

@trejder, technet.microsoft.com/en-us/sysinternals/bb896645 등 을 다운로드해야합니까, 아니면 최근에 종료 된 프로세스 목록을 볼 수있는 Windows의 기본 제공 기능을 참조하고 있습니까? 감사!
Ryan

대답으로 @Ryan 아니, - Process Monitor에서 Sysinternals패키지로 제공된다.
trejder

2
를 사용할 때 Process Monitor필터 메뉴로 이동하여 다음 필터를 추가하십시오. 작업이 Process Exit제외 되지 않습니다 . 터치 패드 드라이버에서 오류가 발생하여 Windows 문제보고로보고하려고했습니다. 이 Q & A 사이트에 대해 % #! @에게 감사드립니다. 그렇지 않으면 랩탑이 손상되었을 수 있습니다.
Daryl Van Sittert

방금 나에게 이런 일이 일어났다. 으로 밝혀졌다 \ Program 파일 (x 86) \ ViveSetup \ PCClient \ HTCVRMarketplaceUserContextHelper.exe : C - HTC의 난중위한 프로그램. 전체 디렉토리를 삭제했습니다. 이번 주 초 업데이트에 문제가있는 것 같습니다
MickyD

12

변동하는 프로세스를 모니터링하기 위해 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);
            }
        }
    }
}

프로세스 시작 (녹색) 및 종료 (빨간색)를 보여주는 출력 샘플

출력 샘플


11
좋은 생각과 좋은 코드입니다. 그러나이 사이트는 개발자가 아닌 사용자를 위한 사이트이기 때문에 (이것은 스택 오버플로가 아닌 슈퍼 유저) 비 C # 개발자가 코드를 실행할 수있는 방법에 대한 설명을 추가해야합니까?
trejder

나는 이것의 개선 된 버전을 만들어 질문에 대한 답변을 포함하여 내 답변에 넣었다.
Palec

아마도 이것을 C # 컴파일러가 필요없는 PowerShell로 변환 하시겠습니까?
phuclv

@phuclv 계속해라 : D
Omar Alshaker

7

초점은 아마도 버그가 많은 백그라운드 작업에 의해 도난되었을 것입니다. 초점을 훔치는 창을 열고 매우 빠르게 닫히지 만 초점이 돌아 오지 않습니다. 최근에 Microsoft Office에는 그러한 버그가있었습니다 .

이러한 프로세스를 발견하려면 Window Focus Logger ( mirror ) 와 같은 도구 또는 Process Monitor 와 유사한 사용자 정의 C # 프로그램을 사용할 수 있습니다 .

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

Omar Alshaker가 제공 한 코드 의 수정 및 버그 수정 버전 . C # 6도 필요하지 않습니다. .NET 3.5 이상이 필요합니다.

csc.exe.NET Framework 설치와 함께 제공 되는 C # 컴파일러 ( )를 사용하여 컴파일 하고 결과 실행 파일을 실행하여 시작 (녹색) 또는 종료 (빨간색) 프로세스의 실시간 로그를 얻을 수 있습니다. Ctrl+ C를 사용 하여 종료하십시오.


컴파일러를 찾으려면을 실행하십시오 where /R %windir%\Microsoft.NET csc.exe. 32b 또는 64b에 관계없이 설치된 최신 .NET 버전에서 하나를 선택하십시오. C # 코드를 저장 Program.cs하고 다음으로 컴파일하십시오 Program.exe.

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

이 코드는 "유형 또는 네임 스페이스 '프로세스'를 찾을 수 없습니다"라는 오류를 표시합니다. 그래서 System.dll에 대한 참조를 추가해야했습니다.
Wilson

이상 해요, 윌슨 어떤 버전의 csc.exe를 사용하고 있습니까?
Palec

1
그건 그렇고, 명령 줄이 될 것 csc.exe -reference:System.dll Program.cs입니다. -reference C # 컴파일러 옵션 docs를 참조하십시오 .
Palec

나는Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Wilson

그 버전은 VS 2017의 이전 빌드 (또는 빌드 도구)에서 나온 것 같습니다. 현재 VS 2017 (15.6.4, csc -version2.7.0.62715 (db02128e)) 의 문제를 재현 할 수 없습니다 . 문제와 해결책을 공유해 주셔서 감사합니다.
Palec

4

필자의 경우 wermgr.exe (Windows 오류보고)가 반복해서 시작되었습니다. 아래 솔루션을 따라 자동으로 시작되지 않도록하여 문제를 해결했습니다.

  1. 시작 단추-> 검색 상자에 조치 센터 ->를 입력하십시오 Enter.
  2. 유지 관리 옆의 화살표를 클릭 하여 확장하십시오.
  3. 아래 문제 보고서에 대한 해결 방법에 대한 확인 , 클릭 설정 .
  4. 모든 사용자에 대한 보고서 설정 변경을 클릭하십시오 .
  5. 옆에있는 라디오 버튼 확인 문제가 발생할 때마다 해결 방법을 확인하기 전에 확인하십시오 .
  6. 확인을 클릭하여 나갈 수 있습니다.

3

Alt+F4중단 프로그램을 종료하는 데 사용 하는 힌트 는 잘 작동했습니다. 대신에 방금 종료 프로그램 추적의 SysInternals '를 ProcessManager다음과 같이 나는 프로그램을 추적 않았다

  1. 열다 Task manager
  2. 열린 프로세스의 스크린 샷 찍기
  3. 브라우저, 메일 등으로 전환하고 "초점 손실 대기"
  4. Alt+F4중단 프로그램을 종료하려면 누릅니다
  5. Task manager열린 프로세스로 이동하여 스크린 샷과 비교
  6. 이제 "누락 된"프로세스로 인해 문제가 발생했습니다

제 경우에는 twcu.exe시작하는 프로그램 이었습니다 TP-Link Configuration tool. 외부 WIFI-USB 스틱에서 사용됩니다. 여기 ( file.net의 twcu.exe )와 여기 ( computerbase.de [german]의 twcu.exe ) TP-Link Configuration tool에 따르면 WIFI 연결 자체에는 필요하지 않습니다. 자동 시작 ( msconfig> system start) 에서 제거 하고 컴퓨터를 다시 시작했는데 여전히 WIFI에 완벽하게 연결되어 초점 손실 문제가 사라졌습니다!


2

NMBgMonitor.exe문제를 해결하기 위해 시작 서비스에서 제거 했습니다.

또한 Chrome 창이 몇 초 동안 포커스를 잃고 다시 돌아 오는 것과 동일한 문제가있었습니다. 작업 관리자 서비스 탭을보고 포커스가 없어 질 때마다 NMBgMonitor가 활성화되어 있음을 알았습니다 (Nero와 관련이 있음).


2

필자의 경우, 아마도 모든 lenovo pc / 노트북의 경우, 문제는 lenovo svcguihlpr.exe로 몇 분마다 작동하기 시작하고 UI가 표시되지 않고 포커스를 잡는 것입니다 ...이 프로세스는 관리를위한 멋진 UI를 제공하는 Lenovo Access Connections 앱입니다 와이파이 및 광대역 네트워크 .. 나는 그것을 사용하지 않았고, 심지어 작업 표시 줄에서 UI를 제거했지만 여전히 작동합니다 ...

오늘 나는 그것이 문제라는 것을 발견하고 그것을 제거했다!

너무 재미있어 ..

그건 그렇고, 나는 가능한 가장 바보 같은 일을하고, 내 전화를 가지고, 비디오 녹화를 시작하고 화면을 녹화하는 작업 관리자를 실행하고 내 작업을 계속함으로써 그것을 발견했습니다 .. 초점이 끊어지면 잠시 기다렸다가 기록을 멈추고 어떤 프로세스가 올라 갔는지 확인했고, svcguihlpr은 1 초도 채 안되는 시간을 보냈습니다.

그것이 다른 사람들을 도울 수 있기를 바랍니다.


에 대한 문제의 xD 가지고 있지 "너무 재미"를 말할 재미 있었다
Motassem MK

2

이 문제가 발생했습니다. 타이밍이 무작위라고 생각했지만 그렇지 않았습니다.

제 경우에는 다음과 같이 사소했습니다 : 벽지 변경!
나는 배경 화면으로 슬라이드 쇼를 가지고 있었고 그것이 바뀔 때마다 초점은 바탕 화면으로 간다!

나는 이것이 주석을 읽는 사람에게 해당 될 수 있기를 희망하며 이것처럼 간단합니다.

(Im은 최신 빌드 Windows 10 (1803-17134.112)에 문제가 있기 때문에 Microsoft 가이 문제를 해결할지 여부는 알 수 없습니다)


1

나는 계속 창 초점을 잃고 있었다. 누군가 로거를 사용하여 WerSvc를 추적하는 데 문제가 있음을 읽으십시오. 그것이 실제로 Windows 오류보고 서비스이지만 Windows 작업 관리자-서비스-서비스에서 비활성화하려고했습니다.

그런 다음 초점 상실 문제가 중지되었습니다.

어쩌면 당신은 그것을 시도 할 수 있습니다.


1

이 문제는 나를 미치게했다! 그래서 프로그램에서 누가 또는 무엇에 초점을 맞추고 있는지 알려주는 프로그램을 작성하기로 결정했습니다. Age of Empires를 플레이 할 때 게임이 무작위로 데스크탑으로 진행됩니다.

결과는 다음과 같습니다 ....

버라이존! 네, 버라이존 도우미 앱을 설치했는데 범인이었습니다!
-제어판-> 프로그램 및 기능으로 이동
하여 Verizon과 관련된 모든 것을 제거하십시오.

나는 보통 Vz로 시작한 프로그램의 이름을 잊어 버리고 ... 나도 서비스가 있습니다 ... 내 기계에있는 것을 죽일 수 없었기 때문에 솔직히 잊어 버렸습니다. )를 제거하지만 Verizon 앱을 제거하면 문제가 해결됩니다.


1

필자의 경우 Windows 프로세스 관리자로 이동하여 프로그램이 지속적으로 시작되고 닫히는 지 확인하여 문제를 해결했습니다. 다운로드 한 프로그램 (윈도우 8 시작이라고 생각)이 7 초마다 다시 시작되고 있음을 알 수있었습니다. 나는 그것과 관련된 모든 것을 삭제했으며 효과가있었습니다!


1

활성 창에서 몇 초마다 포커스를 잃는 문제가 발생했습니다. 입력을 계속하려면 마우스 왼쪽 버튼을 클릭해야합니다. 미치게 하는.

창문 창의 가장자리 주변 영역의 색 구성표가 발생할 때마다 변경되는 것을 알았습니다. 실제로 타이핑하지 않고도 초점의 손실을 볼 수있는 것처럼 보이고 쉬운 방법이었습니다.

그래서 Windows 작업 관리자를 시작하고 프로세스 탭을 클릭했습니다. 잠시 동안보고 난 후, 색상의 포커스 변경 손실과 함께 Adobe 데스크톱 관리자가 목록에서 사라지고 있음을 알 수있었습니다.

Adobe Creative Cloud 데스크탑 응용 프로그램을 다운로드하여 다시 설치했습니다. (참고 : 제거 할 수 없으므로 기존 다운로드 위에 바로 다운로드를 설치했습니다. 그래도 Creative Cloud를 제거 할 수있는 특별한 프로그램이 있습니다.) 그래도 문제가 완전히 해결되었습니다.

Creative Cloud 사용자에게는 이것이 프로그램 일 수 있습니다. 없는 경우 처리 탭을보고 초점이 없어 질 때마다 창 가장자리 주변의 색상 변화를보고 범인을 찾는 데 도움이 될 수 있습니다.


1

작업 관리자를 사용하여 백그라운드 프로세스를 찾았으며 Synaptics Touchpad가 그 원인이었습니다.

'드라이버'는 계속 켜져 있었지만 Synaptics의 또 다른 프로세스는 몇 초마다 팝업으로 인해 포커스를 잃었습니다.

나는 Synaptics를 제거하고 더 이상 초점을 잃지 않을 것입니다.


1

Regedit (시작 단추 + R을 누른 다음 regedit를 입력)에서 HKEY_CURRENT_USER \ Control Panel \ Desktop \ ForegroundLockTimeout 값을 0에서 30d40으로 변경하십시오. 컴퓨터를 저장하고 다시 시작하십시오.


0

Gladinet 또는 Nuance Cloud Connector와 같은 백업 유틸리티를 확인하십시오. (Gladinet의 엔진을 사용하고 있으며 이러한 종류의 문제는 2012 년에 이미 알려졌습니다.) 그들은 Explorer.exe 내에서 창없는 / 무 작업 dll을 실행하고 있습니다.


0

내 Samsung Galaxy S6는 지속적으로 "Android 업그레이드 중"상태였으며 충전을 위해 USB를 통해 연결했을 때 10 초마다 포커스 문제가 발생했지만 탐색기 창이 나타나지 않았습니다. 포커스 문제가 사라진 후 USB 포트를 변경하고 전화기에서 "USB 충전"모드로 선택했습니다.

그러나 지속적인 "Android 업그레이드"문제는 여전히 존재하며 여전히 해결해야합니다.


0

나는 같은 문제를 가지고있다. 제 경우는 표준 사용자 계정으로 실행되는 Windows XP 프로그램이었습니다. 실행하려면 관리자 권한이 필요했습니다. 그래서 백그라운드에서 실행되었지만 그것을 보지 못했지만 종종 현재 창 (Windows 탐색기, 파이어 폭스 및 기타 프로그램)의 초점을 훔쳤습니다. 매우 성가신입니다. 행복한 droid 에서 focus.exe 를 사용하여 범인을 식별했습니다. 또한 동일한 목적으로 Windows 포커스 로거 를 사용할 수 있습니다 .


-1

같은 문제가 발생했습니다. 내 노트북은 조금 낡았습니다. 2GB RAM과 Window 7이 있습니다. 1 시간 동안 실행 한 후에도 이와 동일한 상황이 발생합니다. 랩톱이 과열되었을 때이 경우가 발생했습니다. 해결 방법 : 자동 RAM 클리너 소프트웨어를 설치하십시오. 자동 RAM 클리너를 설치 한 지 한 달이 지났고 다시는 문제에 직면하지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.