Cửa sổ hoạt động (chương trình) bất ngờ mất tiêu điểm trong Windows 7


23

Một cái gì đó đang chuyển (lấy cắp) tập trung từ cửa sổ hoạt động của tôi (chương trình hoạt động) trong Windows của tôi, như tôi hiện đang sử dụng nó.

Tôi có cùng một vấn đề như được mô tả trong câu hỏi này , với một vài ngoại lệ:

  1. Tôi đã quan sát hành vi này trên (ít nhất) hai máy tính khác nhau, vì vậy đây không phải là máy cụ thể.

  2. Một trong những máy tính được đề cập có Windows 7 HE 64-bit khác có Windows 7 Pro 32-bit, vì vậy vấn đề này không dành riêng cho một phiên bản Windows cụ thể hoặc cho một nền tảng phần cứng cụ thể.

  3. Đôi khi mất tiêu điểm (phải nhấp vào cửa sổ để tiếp tục sử dụng), đôi khi nó chỉ được chuyển sang một quá trình nền khác (?) Và trở lại sau khoảng 2-3 giây.

  4. Tôi đã không cài đặt bất cứ thứ gì mới trên bất kỳ máy tính nào trong vài tuần qua (ngoại trừ Windows Update và các bản cập nhật tự động khác như cập nhật tự động trình duyệt Chrome) và chắc chắn các đề xuất đã bắt đầu xảy ra nhiều ngày sau lần cài đặt trước .

Hành vi hiện tại của máy tính của tôi thực sự kỳ lạ và toàn bộ sự việc trở nên khó chịu. Ví dụ:

  1. Tôi đang chọn một số văn bản trong Chrome và thực sự thấy, màu lựa chọn đó thay đổi từ màu xanh lam (lựa chọn trong một cửa sổ đang hoạt động) sang màu xám (lựa chọn trong cửa sổ không hoạt động).

  2. Tôi đang chỉnh sửa một số tài liệu trong Word, Notepad ++ hoặc e-mail trong Gmail trong Chrome và quá trình chỉnh sửa sẽ dừng trong vài giây (khi dịch chuyển tiêu điểm) kết thúc vĩnh viễn (mất tập trung vĩnh viễn).

Tôi đã tích cực, cập nhật và hoạt động Microsoft Security Essentials và nó không báo cáo điều gì bất thường.

Tôi có cảm giác rằng nó thường xảy ra trong Google Chrome. Lúc đầu, tôi rất chắc chắn, rằng tôi gần như đã sẵn sàng để buộc tội một số cập nhật mới nhất của trình duyệt này. Nhưng hóa ra, tôi nhận thấy điều này thường xuyên trong Chrome, bởi vì đây là chương trình được sử dụng thường xuyên nhất của tôi.

Có ai có hoặc có vấn đề tương tự hoặc có bất kỳ ý tưởng, những gì có thể gây ra điều này hoặc làm thế nào để khắc phục điều này?


2
Có phải sự cố cũng xảy ra trong Chế độ an toàn (có hoặc không có kết nối mạng) không? Bắt đầu msconfigvà chọn tab Khởi động . Có những chương trình gì?
và31415

1
Rất khó để "bắt" vấn đề được mô tả, vì nó không xảy ra quá thường xuyên. Ví dụ - không có dấu vết trong hai ngày qua. Vì vậy, tôi sẽ phải làm việc nhiều ngày trong Chế độ an toàn để cố gắng "bắt" điều này. Nhưng, cảm ơn vì ý tưởng. Ngoài ra, xem câu trả lời của tôi dưới đây.
trejder

Câu trả lời:


17

Như and31415 khuyên tôi, tôi đã xem xét cẩn thận những gì trong Startuptab msconfigchương trình của mình, nhưng không thấy có gì bất thường.

Bây giờ rõ ràng rằng điều này là 99% gây ra bởi một số chương trình bên ngoài (mặc dù không được chú ý trước đó và mặc dù tôi đã không cài đặt bất cứ điều gì mới gần đây), không phải bởi Windows. Đây là điểm quan trọng nhất đối với tôi ở đây.

Tôi googled thêm một chút và có một số ý tưởng / lời khuyên, cụ thể là tôi nên thử nhấn Alt+ F4ngay sau khi tôi nhận thấy một sự đánh cắp trọng tâm. Điều này sẽ thoát quá trình có thể gây ra tập trung tàng hình. Sau đó, tôi có thể thử sử dụng Process Monitortừ Sysinternalsgói để theo dõi quá trình vừa thoát.

Điều này có thể cho tôi một số ý tưởng về những gì gây ra vấn đề này.


1
Từ msconfig, chọn tab Dịch vụ và bật Ẩn tất cả các dịch vụ của Microsoft . Kiểm tra điều đó quá. Đây là một bài viết KB chính thức có thể hữu ích: Thực hiện khởi động sạch để xác định xem các chương trình nền có can thiệp vào trò chơi hoặc chương trình của bạn hay không . Ngoài ra, ngay cả khi bạn không thấy điều gì bất thường, tôi nghĩ sẽ là một ý tưởng tốt khi liệt kê tất cả các mục và dịch vụ khởi động của bên thứ ba mà bạn có.
và31415

@trejder, bạn có cần tải xuống technet.microsoft.com/en-us/sysiternals/bb896645 hoặc một cái gì khác không, hoặc bạn đang đề cập đến một tính năng tích hợp sẵn của Windows cho phép bạn xem danh sách các quy trình gần đây đã thoát? Cảm ơn!
Ryan

@Ryan Không, như trong câu trả lời - Process Monitortừ Sysinternalsgói.
trejder

2
Khi sử dụng Process Monitor, hãy chuyển đến menu Bộ lọc và thêm bộ lọc sau: Thao tác không phải là Process ExitLoại trừ. Trình điều khiển touchpad của tôi đã gặp lỗi và cố gắng báo cáo với Báo cáo sự cố Windows. Cảm ơn% #! @ Cho các trang web Hỏi & Đáp này nếu không tôi sẽ phá hủy máy tính xách tay của tôi.
Daryl Van Sittert

Tôi chỉ có điều này xảy ra với tôi. Hóa ra là C: \ Program Files (x86) \ ViveSetup \ PCClient \ HTCVRMarketplaceUserContextHelper.exe - một chương trình dành cho HTC Vive. Tôi đã xóa toàn bộ thư mục. Tôi nghi ngờ đây là một vấn đề với bản cập nhật của họ vào đầu tuần này
MickyD ngày

12

Tôi đã lập trình một chương trình C # để theo dõi các quá trình biến động. Đây là mã nếu ai đó cần tìm hiểu quá trình nào gây ra vấn đề này.

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

Mẫu đầu ra cho thấy quá trình bắt đầu (màu xanh lá cây) và kết thúc (màu đỏ)

Mẫu đầu ra


11
Ý tưởng tốt và mảnh mã đẹp. Nhưng, vì đây là trang dành cho người dùng , không phải nhà phát triển (đây là Siêu người dùng, không phải Stack Overflow), nên bạn nên thêm một số giải thích về cách người không phát triển C # có thể chạy mã của bạn?
trejder 17/2/2016

Tôi đã tạo một phiên bản cải tiến của điều này và đưa nó vào câu trả lời của riêng tôi , bao gồm các câu trả lời cho câu hỏi của bạn, @trejder.
Palec

có thể chuyển đổi nó thành PowerShell mà không cần trình biên dịch C #?
phuclv

@phuclv chắc chắn đi trước: D
Omar Alshaker

7

Trọng tâm có thể bị đánh cắp bởi một nhiệm vụ nền lỗi. Nó mở một cửa sổ, đánh cắp tiêu điểm, và nó rất nhanh đóng lại, nhưng tiêu điểm không quay trở lại. Gần đây, Microsoft Office đã có một lỗi như vậy .

Để khám phá các quy trình như vậy, bạn có thể sử dụng các công cụ như Window Focus Logger ( nhân bản ) hoặc chương trình C # tùy chỉnh tương tự như Trình giám sát quy trình :

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

Phiên bản được đánh bóng và sửa lỗi của mã được cung cấp bởi Omar Alshaker . Cũng không yêu cầu C # 6. Yêu cầu .NET 3.5 trở lên.

Bạn có thể biên dịch nó bằng trình biên dịch C # ( csc.exe) đi kèm với cài đặt .NET Framework của bạn và chạy kết quả thực thi để có được nhật ký thời gian thực của các quá trình bắt đầu (xanh) hoặc kết thúc (đỏ). Sử dụng Ctrl+ Cđể chấm dứt nó.


Để tìm trình biên dịch, chạy where /R %windir%\Microsoft.NET csc.exe. Chọn một từ phiên bản .NET mới nhất được cài đặt, bất kể là 32b hay 64b. Lưu mã C # vào Program.csvà biên dịch nó thành Program.exe:

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

Mã này cho tôi lỗi "Không thể tìm thấy loại hoặc không gian tên 'Quá trình'". Vì vậy, tôi cần thêm một tham chiếu đến System.dll.
Wilson

Lạ thật, @Wilson. Bạn đang sử dụng phiên bản nào của csc.exe?
Palec

1
Nhân tiện, dòng lệnh sẽ là csc.exe -reference:System.dll Program.cssau đó. Xem tài liệu tùy chọn trình biên dịch C # .
Palec

Tôi cóMicrosoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Wilson

Phiên bản đó dường như là từ bản dựng cũ của VS 2017 (hoặc các công cụ xây dựng của nó). Tôi không thể tái tạo sự cố với VS 2017 hiện tại (15.6.4, csc -version2.7.0.62715 (db02128e)). Tuy nhiên, cảm ơn vì đã chia sẻ vấn đề và giải pháp của nó.
Palec

4

Trong trường hợp của tôi, đó là wermgr.exe (báo cáo lỗi Windows) bắt đầu lại. Tôi đã làm theo giải pháp dưới đây để ngăn chặn nó bắt đầu tự động, và điều đó đã giải quyết vấn đề.

  1. Nút bắt đầu -> Trong hộp tìm kiếm, gõ Trung tâm hành động -> Enter.
  2. Nhấp vào mũi tên bên cạnh Bảo trì để mở rộng.
  3. Trong phần Kiểm tra các giải pháp cho các báo cáo sự cố , nhấp vào Cài đặt .
  4. Nhấp vào Thay đổi cài đặt báo cáo cho tất cả người dùng .
  5. Kiểm tra nút radio bên cạnh Mỗi lần xảy ra sự cố, hãy hỏi tôi trước khi kiểm tra giải pháp .
  6. OK theo cách của bạn, bằng cách nhấn OK.

3

Gợi ý với việc sử dụng Alt+F4để thoát khỏi chương trình ngắt hoạt động tốt. Thay vì truy tìm các chương trình chỉ thoát với SysInternal's ProcessManager, tôi đã bắt nguồn từ chương trình như sau:

  1. Mở Task manager
  2. Chụp ảnh màn hình của các quy trình mở
  3. Chuyển sang Trình duyệt, Thư, v.v. và "chờ mất tập trung"
  4. Nhấn Alt+F4để thoát khỏi chương trình ngắt
  5. Đi đến Task managervà so sánh các quy trình mở với ảnh chụp màn hình
  6. Quá trình "mất tích" hiện gây ra sự cố

Trong trường hợp của tôi, đó là twcu.exemột chương trình bắt đầu với TP-Link Configuration tool. Nó được sử dụng bởi Gậy WIFI-USB bên ngoài. Như đã báo cáo ở đây ( twcu.exe tại file.net ) và ở đây ( twcu.exe tại computerbase.de [German] ), TP-Link Configuration toolkhông cần thiết cho chính kết nối WIFI. Tôi đã gỡ bỏ nó khỏi Autostart ( msconfig> system start), khởi động lại máy tính và nó vẫn kết nối với WIFI hoàn hảo - và các vấn đề mất tiêu điểm đã biến mất!


2

Tôi loại bỏ NMBgMonitor.exekhỏi các dịch vụ khởi động để giải quyết vấn đề.

Tôi cũng gặp vấn đề tương tự với cửa sổ Google Chrome mất tập trung trong vài giây và sau đó quay lại. Bằng cách xem tab dịch vụ quản lý tác vụ, tôi nhận thấy rằng bất cứ khi nào mất tiêu điểm, NMBgMonitor đã hoạt động (nó có liên quan đến Nero).


2

trong trường hợp của tôi, và có lẽ là tất cả các trường hợp máy tính / máy tính xách tay của lenovo, vấn đề là do lenovo svcguihlpr.exe bắt đầu hoạt động cứ sau vài phút và lấy nét mà không hiển thị UI ... quá trình này là ứng dụng Lenovo Access Connections mang lại hiệu quả tốt cho việc quản lý mạng wifi và băng thông rộng .. tôi chưa bao giờ sử dụng nó, tôi thậm chí đã gỡ bỏ nó khỏi thanh tác vụ nhưng nó vẫn hoạt động ...

hôm nay tôi thấy rằng đó là vấn đề và gỡ cài đặt nó!

rất vui..

Nhân tiện, tôi đã tìm thấy nó bằng cách làm điều ngu ngốc nhất có thể, lấy điện thoại của tôi, bắt đầu quay video màn hình là tôi chạy trình quản lý tác vụ và tiếp tục công việc của mình .. một khi mất tập trung, tôi đợi một giây, dừng ghi âm và kiểm tra xem các quá trình di chuyển lên, svcguihlpr đã ở trên đỉnh trong chưa đầy một giây ..

hy vọng nó sẽ giúp người khác


thật vui khi nói "rất nhiều niềm vui" về việc không gặp vấn đề xD
Motassem MK

2

Tôi đã có vấn đề này, tôi nghĩ rằng thời gian là ngẫu nhiên nhưng nó không phải là,

trong trường hợp của tôi, nó cũng tầm thường như: thay đổi hình nền!
Tôi đã có một slideshow làm hình nền và mỗi khi nó thay đổi, tiêu điểm sẽ chuyển sang màn hình nền!

Tôi hy vọng đây có thể là trường hợp cho ai đó đọc các bình luận và nó sẽ đơn giản như thế này.

(Tôi không biết microsoft có bao giờ sửa lỗi này không, vì tôi gặp sự cố trên bản dựng Windows 10 mới nhất (1803 - 17134.112))


1

Tôi đã mất tập trung cửa sổ liên tục quá. Đọc rằng ai đó quản lý để theo dõi WerSvc đang gây ra vấn đề bằng cách sử dụng một logger. Ngay cả khi đó thực tế là một Dịch vụ báo cáo lỗi Windows, nhưng tôi đã cố gắng vô hiệu hóa nó trong Trình quản lý tác vụ - Dịch vụ - Dịch vụ của Windows.

Sau đó, vấn đề mất tập trung dừng lại.

Có lẽ các bạn có thể thử nó.


1

Vấn đề này làm tôi phát điên! Vì vậy, tôi quyết định viết một chương trình để cho tôi biết ai hoặc cái gì đang tập trung ra khỏi chương trình của tôi. Thật khó chịu khi bạn đang chơi Age of Empires và trò chơi chuyển sang màn hình nền một cách ngẫu nhiên.

Dưới đây là những phát hiện ....

Verizon! Có, tôi đã cài đặt một số ứng dụng trợ giúp của Verizon và đó là thủ phạm!
Đi vào - Bảng điều khiển -> Chương trình và Tính năng
và gỡ cài đặt mọi thứ liên quan đến Verizon.

Tôi quên tên chương trình, thường bắt đầu bằng Vz ... và cũng có một dịch vụ IW ... Tôi thực sự quên vì tôi không thể chờ đợi để giết bất cứ thứ gì trên máy của mình (điều đó làm tôi phát điên ), nhưng khi bạn gỡ cài đặt ứng dụng Verizon., vấn đề sẽ biến mất.


1

Trong trường hợp của tôi, tôi đã khắc phục sự cố bằng cách đi đến trình quản lý quy trình windows và kiểm tra xem có chương trình nào được khởi chạy và đóng liên tục không. Tôi có thể nhận thấy rằng một chương trình tôi đã tải xuống (tôi nghĩ rằng nó được gọi là windows 8 start) đang khởi động lại cứ sau 7 giây. Tôi đã xóa mọi thứ liên quan đến nó, và nó đã hoạt động!


1

Tôi đã gặp vấn đề về cửa sổ hoạt động mất tập trung cứ sau vài giây. Tôi sẽ phải nhấp chuột trái để tiếp tục gõ. Điên cuồng.

Tôi nhận thấy rằng bảng màu cho các khu vực xung quanh các cạnh của cửa sổ sẽ thay đổi mỗi khi nó xảy ra. Có vẻ như và cách dễ dàng để thấy mất tập trung mà không thực sự gõ.

Vì vậy, tôi bắt đầu quản lý tác vụ windows và bấm vào tab quy trình. Sau khi xem một lúc, tôi có thể thấy rằng trình quản lý máy tính để bàn Adobe sẽ xuất hiện và trong danh sách đồng thời với việc mất màu thay đổi tiêu cự.

Tôi đã tải xuống và cài đặt lại ứng dụng máy tính để bàn Adobe Creative Cloud. (Lưu ý: Tôi không thể gỡ cài đặt nó, vì vậy tôi chỉ cài đặt tải xuống ngay trên bản hiện có. Có một chương trình đặc biệt để gỡ cài đặt Creative Cloud nếu điều này không hoạt động.) Điều này đã khắc phục hoàn toàn vấn đề của tôi.

Đối với những người có Creative Cloud, đây có thể là chương trình. Đối với những người không có, xem tab xử lý và thay đổi màu sắc xung quanh các cạnh của cửa sổ với mỗi lần mất tiêu điểm có thể giúp bạn tìm ra thủ phạm.


1

Tôi đã sử dụng trình quản lý tác vụ để tìm kiếm các quy trình nền và Synaptics Touchpad là thủ phạm.

'Trình điều khiển' liên tục xuất hiện, nhưng một quá trình khác của Synaptics đã xuất hiện cứ sau vài giây và khiến cho tiêu điểm bị mất.

Tôi đã gỡ cài đặt Synaptics và hey thế, không mất tập trung nữa!


1

Trong Regedit (Giữ nút Bắt đầu + R, sau đó nhập regedit), thay đổi giá trị HKEY_CURRENT_USER \ Control Panel \ Desktop \ ForegroundLockTimeout từ 0 đến 30d40. Lưu và khởi động lại máy tính.


0

Kiểm tra tiện ích sao lưu như Gladinet hoặc Nuance Cloud Connector. (Cả hai đều sử dụng công cụ của Gladinet và loại vấn đề này đã được biết đến vào năm 2012.) Họ đang chạy một dll không có cửa sổ / không có tác vụ trong Explorer.exe.


0

Samsung Galaxy S6 của tôi liên tục "Nâng cấp Android" và khi được kết nối qua USB để sạc, cứ sau 10 giây tôi lại bị mất tiêu điểm, nhưng không có cửa sổ thám hiểm nào xuất hiện ở phía trước. Tôi đã thay đổi cổng usb và chọn chế độ "Sạc USB" từ điện thoại, sau khi vấn đề lấy nét đó biến mất.

Nhưng vấn đề "Nâng cấp Android" liên tục vẫn còn đó và cần phải giải quyết.


0

Tôi có cùng một vấn đề. Trường hợp của tôi đó là chương trình Windows XP được chạy trên tài khoản người dùng chuẩn. Nó cần quyền quản trị nâng cao để chạy. Vì vậy, trong khi nó chạy ở chế độ nền, tôi không nhìn thấy nó, nó thường xuyên đánh cắp trọng tâm của cửa sổ hiện tại của tôi (windows explorer, firefox và các chương trình khác). Điều đó rất phiền. Tôi đã sử dụng Focus.exe bởi happy droid để xác định thủ phạm. Ngoài ra, bạn có thể sử dụng Windows Focus Logger cho cùng một mục đích.


-1

Vấn đề tương tự tôi gặp phải. Máy tính xách tay của tôi hơi cũ. Tôi không có RAM 2GB và Window 7. Sau khi chạy trong một giờ, điều này cũng xảy ra tương tự mọi lúc. Tôi nhận thấy trường hợp này phát sinh khi máy tính xách tay quá nóng. Giải pháp: Cài đặt phần mềm RAM Cleaner tự động. Đã một tháng sau khi cài đặt bộ dọn RAM tự động và tôi không bao giờ phải đối mặt với vấn đề này nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.