Jendela aktif (program) tiba-tiba kehilangan fokus di Windows 7

24

Ada sesuatu yang mengalihkan (mencuri) fokus dari jendela aktif saya (program aktif) di Windows saya, karena saya sedang menggunakannya.

Saya memiliki masalah yang sama seperti yang dijelaskan dalam pertanyaan ini , dengan beberapa pengecualian:

  1. Saya mengamati perilaku ini pada (setidaknya) dua komputer yang berbeda, jadi ini bukan mesin khusus.

  2. Salah satu komputer yang disebutkan memiliki Windows 7 HE 64-bit yang lain memiliki Windows 7 Pro 32-bit, jadi masalah ini tidak spesifik untuk versi Windows tertentu atau untuk platform perangkat keras tertentu.

  3. Kadang-kadang fokus hilang untuk selamanya (harus mengklik pada jendela untuk terus menggunakannya), kadang-kadang hanya bergeser ke beberapa proses latar belakang lainnya (?) Dan kembali setelah sekitar 2-3 detik.

  4. Saya belum menginstal sesuatu yang baru pada komputer ini selama beberapa minggu terakhir (kecuali untuk Pembaruan Windows dan pembaruan otomatis lainnya seperti pembaruan otomatis browser Chrome) dan tentu saja disebutkan bahwa masalah mulai terjadi beberapa hari setelah pemasangan terakhir .

Perilaku komputer saya saat ini benar-benar aneh dan semuanya menjadi menjengkelkan. Contoh:

  1. Saya memilih beberapa teks di Chrome dan benar-benar melihat, bahwa pemilihan warna berubah dari biru (seleksi di jendela aktif) menjadi abu-abu (pilihan di jendela tidak aktif).

  2. Saya mengedit beberapa dokumen di Word, Notepad ++ atau email di Gmail di Chrome dan proses edit berhenti selama beberapa detik (ketika fokus bergeser) untuk diakhiri secara permanen (fokus hilang untuk selamanya).

Saya memiliki Microsoft Security Essentials yang aktif, diperbarui, dan tidak melaporkan sesuatu yang tidak biasa.

Saya punya perasaan, bahwa itu paling sering terjadi di Google Chrome. Awalnya saya sangat yakin, bahwa saya hampir siap untuk menuduh beberapa pembaruan terakhir dari browser ini. Namun ternyata, saya perhatikan ini sering terjadi di Chrome, karena ini adalah program saya yang paling sering digunakan.

Apakah ada yang punya atau punya masalah serupa atau punya ide, apa yang bisa menyebabkan ini atau bagaimana cara memperbaikinya?

Trejder
sumber
2
Apakah masalah juga terjadi pada Mode Aman (dengan atau tanpa jaringan)? Mulai msconfig, dan pilih tab Startup . Program apa yang ada?
and31415
1
Sangat sulit untuk "menangkap" masalah yang dijelaskan, karena itu tidak terjadi terlalu sering. Misalnya - tidak ada jejak selama dua hari terakhir. Jadi saya harus bekerja berhari-hari dalam Safe Mode untuk mencoba "menangkap" ini. Tapi terima kasih untuk idenya. Juga, lihat jawaban saya di bawah ini.
Trejder

Jawaban:

18

Seperti yang disarankan oleh and31415 , saya memperhatikan apa yang ada di Startuptab msconfigprogram saya, tetapi tidak menemukan sesuatu yang tidak biasa.

Sekarang jelas bahwa ini adalah 99% disebabkan oleh beberapa program eksternal (meskipun tidak diperhatikan sebelumnya dan meskipun saya belum menginstal sesuatu yang baru), bukan oleh Windows. Inilah poin terpenting bagi saya di sini.

Saya googled sedikit lagi dan mendapat beberapa ide / saran, yaitu bahwa saya harus mencoba menekan Alt+ F4segera setelah saya melihat mencuri fokus. Ini harus keluar dari proses yang dapat menyebabkan fokus ini tersembunyi. Kemudian, saya dapat mencoba menggunakan Process Monitordari Sysinternalspaket untuk melacak proses yang baru saja keluar.

Ini mungkin memberi saya beberapa ide tentang apa yang menyebabkan masalah ini.

Trejder
sumber
1
Dari msconfig, pilih tab Layanan dan aktifkan Sembunyikan semua layanan Microsoft . Periksa juga. Inilah artikel KB resmi yang dapat bermanfaat: Lakukan startup bersih untuk menentukan apakah program latar belakang mengganggu permainan atau program Anda . Juga, bahkan jika Anda tidak melihat sesuatu yang tidak biasa, saya pikir itu akan menjadi ide yang baik untuk mendaftar semua item dan layanan startup pihak ketiga yang Anda dapatkan.
and31415
@trejder, apakah Anda perlu mengunduh technet.microsoft.com/en-us/sysinternals/bb896645 atau yang lainnya, atau apakah Anda merujuk ke fitur bawaan Windows yang memungkinkan Anda melihat daftar proses yang baru saja keluar? Terima kasih!
Ryan
@Ryan Tidak, seperti dalam jawaban - Process Monitordari Sysinternalspaket.
trejder
2
Saat menggunakan Process Monitor, masuk ke menu Filter dan tambahkan filter berikut: Pengoperasian belum Process Exitdikecualikan. Driver touchpad saya melempar kesalahan dan mencoba melaporkannya dengan Windows Problem Reporting. Terima kasih% #! @ Untuk situs T&J ini atau saya akan menghancurkan laptop saya.
Daryl Van Sittert
Saya baru saja mengalami hal ini pada saya. Ternyata menjadi C: \ Program Files (x86) \ ViveSetup \ PCClient \ HTCVRMarketplaceUserContextHelper.exe - program untuk HTC Vive. Saya menghapus seluruh direktori. Saya menduga ini adalah masalah dengan pembaruan mereka awal minggu ini
MickyD
13

Saya memprogram program C # untuk memantau proses yang berfluktuasi. Ini adalah kode jika seseorang perlu mengetahui proses apa yang menyebabkan masalah ini.

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

Output sampel menunjukkan proses mulai (hijau) dan mengakhiri (merah)

Sampel keluaran

Omar Alshaker
sumber
10
Ide bagus dan sepotong kode yang bagus. Tapi, karena ini adalah situs untuk pengguna , bukan pengembang (ini adalah Pengguna Super, bukan Stack Overflow), maka Anda harus menambahkan beberapa penjelasan tentang bagaimana non-C # -developer dapat menjalankan kode Anda?
trejder
Saya membuat versi yang lebih baik dari ini dan memasukkannya ke dalam jawaban saya sendiri , termasuk jawaban atas pertanyaan Anda, @trejder.
Palec
mungkin mengubahnya menjadi PowerShell yang tidak memerlukan kompiler C #?
phuclv
@ phuclv yakin silakan: D
Omar Alshaker
8

Fokusnya mungkin dicuri oleh tugas latar kereta. Ini membuka jendela, yang mencuri fokus, dan sangat cepat ditutup, tetapi fokus tidak kembali. Akhir-akhir ini, Microsoft Office memiliki bug seperti itu .

Untuk menemukan proses seperti itu, Anda dapat menggunakan alat seperti Window Focus Logger ( mirror ) atau program C # kustom mirip dengan 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();
            }
        }
    }
}

Versi kode yang dipoles dan diperbaiki bug yang disediakan oleh Omar Alshaker . Juga tidak memerlukan C # 6. Membutuhkan. NET 3.5 atau lebih baru.

Anda dapat mengkompilasinya menggunakan C # compiler ( csc.exe) yang datang dengan instalasi .NET Framework Anda dan menjalankan executable yang dihasilkan untuk mendapatkan log real-time dari proses yang dimulai (hijau) atau akhir (merah). Gunakan Ctrl+ Cuntuk menghentikannya.


Untuk menemukan kompiler, jalankan where /R %windir%\Microsoft.NET csc.exe. Pilih satu dari versi .NET terbaru yang diinstal, tidak peduli apakah 32b atau 64b. Simpan kode C # Program.csdan kompilasi untuk Program.exe:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe Program.cs
Palec
sumber
Kode ini memberi saya kesalahan "Jenis atau namespace 'Proses' tidak dapat ditemukan". Jadi saya perlu menambahkan referensi ke System.dll.
Wilson
Aneh, @ Willson. Versi csc.exe mana yang Anda gunakan?
Palec
1
Omong-omong, baris perintah akan menjadi csc.exe -reference:System.dll Program.csitu. Lihat- opsi referensi C # compiler docs .
Palec
Saya punyaMicrosoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Wilson
Versi itu tampaknya berasal dari versi VS 2017 yang lebih lama (atau perangkat build-nya). Saya tidak dapat mereproduksi masalah dengan VS 2017 saat ini (15.6.4, csc -version2.7.0.62715 (db02128e)). Namun, terima kasih telah berbagi masalah dan solusinya.
Palec
4

Dalam kasus saya itu adalah bahwa wermgr.exe (pelaporan kesalahan Windows) mulai lagi dan lagi. Saya mengikuti solusi di bawah ini untuk menghentikannya memulai secara otomatis, dan itu memecahkan masalah.

  1. Tombol Mulai -> Di kotak pencarian ketik Pusat aksi -> Enter.
  2. Klik panah di sebelah Pemeliharaan untuk meluaskan.
  3. Di bawah Periksa solusi untuk laporan masalah , klik Pengaturan .
  4. Klik pada Ubah pengaturan laporan untuk semua pengguna .
  5. Periksa tombol radio di sebelah Setiap kali masalah terjadi, tanyakan kepada saya sebelum memeriksa solusinya .
  6. OK jalan keluar Anda, dengan mengklik OK.
Pampam
sumber
3

Petunjuk menggunakan Alt+F4untuk keluar dari program yang mengganggu bekerja dengan baik. Alih-alih melacak program hanya keluar dengan SysInternal's ProcessManager, aku ditelusuri program sebagai berikut:

  1. Buka Task manager
  2. Ambil tangkapan layar dari proses terbuka
  3. Beralih ke Browser, Email, dll dan "tunggu kehilangan fokus"
  4. Tekan Alt+F4untuk keluar dari program interupsi
  5. Pergi ke Task managerdan bandingkan proses terbuka dengan tangkapan layar
  6. Proses yang sekarang "hilang" menyebabkan masalah

Dalam kasus saya itu twcu.exe, program yang dimulai dengan TP-Link Configuration tool. Ini digunakan oleh WIFI-USB Stick eksternal. Seperti yang dilaporkan di sini ( twcu.exe di file.net ) dan di sini ( twcu.exe di computerbase.de [Jerman] ), TP-Link Configuration tooltidak diperlukan untuk koneksi WIFI itu sendiri. Saya menghapusnya dari Autostart ( msconfig> system start), menyalakan kembali komputer dan masih terhubung ke WIFI tanpa cacat - dan masalah kehilangan fokus hilang!

Tobias
sumber
2

Saya dihapus NMBgMonitor.exedari layanan startup untuk mengatasi masalah ini.

Saya juga punya masalah yang sama dengan jendela Google Chrome kehilangan fokus selama beberapa detik dan kemudian kembali. Dengan menonton tab layanan pengelola tugas, saya perhatikan bahwa setiap kali fokus hilang, NMBgMonitor aktif (itu ada hubungannya dengan Nero).

funk79
sumber
2

dalam kasus saya, dan mungkin semua kasus / laptop lenovo pc, masalahnya adalah dengan lenovo svcguihlpr.exe yang mulai bekerja setiap beberapa menit dan mengambil fokus tanpa UI ditampilkan ... proses ini adalah aplikasi Lenovo Access Connections yang memberikan ui bagus untuk mengelola wifi dan jaringan broadband .. saya tidak pernah menggunakannya, saya bahkan menghapusnya ui dari taskbar tetapi masih berfungsi ...

hari ini saya menemukan bahwa itu adalah masalah dan menghapusnya!

sangat menyenangkan..

Ngomong-ngomong, saya menemukannya dengan melakukan hal paling bodoh yang mungkin, mengambil telepon saya, mulai merekam video layar adalah saya menjalankan task manager, dan melanjutkan pekerjaan saya. begitu fokus hilang saya menunggu sebentar, menghentikan rekaman dan memeriksa proses mana yang bergerak ke atas, svcguihlpr berada di atas kurang dari sedetik ..

berharap ini akan membantu orang lain.

Oded Maimon
sumber
itu lucu untuk mengatakan "sangat menyenangkan" tentang tidak memiliki masalah xD
Motassem MK
2

Saya punya masalah ini, saya pikir waktunya acak tetapi tidak,

dalam kasus saya itu sepele seperti: perubahan wallpaper!
Saya memiliki tayangan slide sebagai wallpaper dan setiap kali itu berubah, fokusnya pergi ke desktop!

Saya harap ini mungkin terjadi pada seseorang yang membaca komentar dan akan sesederhana ini.

(Saya tidak tahu apakah microsoft akan memperbaiki ini, karena saya mempunyai masalah pada build terbaru windows 10 (1803 - 17134.112))

Motassem MK
sumber
1

Jendela saya selalu kehilangan fokus terus-menerus. Baca bahwa seseorang yang berhasil melacak WerSvc menyebabkan masalah dengan menggunakan logger. Bahkan jika itu sebenarnya Layanan Pelaporan Kesalahan Windows, tetapi saya mencoba untuk menonaktifkannya di Windows Task Manager - Layanan - Layanan.

Kemudian masalah kehilangan fokus berhenti.

Mungkin kalian bisa mencobanya.

Leon
sumber
1

Masalah ini membuatku gila! Jadi saya memutuskan untuk menulis sebuah program untuk memberi tahu saya siapa atau apa yang mengambil fokus dari program saya. Sangat menjengkelkan saat Anda bermain Age of Empires dan gim ini pergi ke desktop secara acak.

Berikut temuannya ....

Verizon! Ya, saya telah menginstal beberapa aplikasi pembantu Verizon dan itu penyebabnya!
Pergilah ke - Control Panel -> Program dan Fitur
dan uninstall apa pun yang berkaitan dengan Verizon.

Saya lupa nama-nama program, biasanya dimulai dengan Vz ..., dan ada layanan juga IW ... Sejujurnya saya lupa karena saya tidak sabar untuk membunuh apa pun yang ada di mesin saya dari mereka (itu membuat saya gila ), tetapi ketika Anda menghapus aplikasi Verizon., masalahnya hilang.

Neal
sumber
1

Dalam kasus saya, saya memperbaiki masalah dengan pergi ke manajer proses windows, dan memeriksa apakah ada program yang diluncurkan dan ditutup terus-menerus. Saya bisa melihat bahwa sebuah program yang saya unduh (saya pikir itu disebut windows 8 start) mulai ulang setiap 7 detik. Saya menghapus semua yang terkait dengannya, dan itu berhasil!

Ghais
sumber
1

Saya mengalami masalah jendela aktif kehilangan fokus setiap beberapa detik. Saya harus klik kiri untuk terus mengetik. Maddening.

Saya perhatikan bahwa skema warna untuk area di sekitar tepi jendela akan berubah setiap kali terjadi. Sepertinya dan cara mudah untuk melihat kehilangan fokus tanpa benar-benar mengetik.

Jadi, saya memulai windows task manager dan mengklik tab proses. Setelah menonton sebentar, saya dapat melihat bahwa manajer desktop Adobe datang dan ada dalam daftar secara bersamaan dengan hilangnya fokus perubahan warna.

Saya mengunduh dan menginstal ulang aplikasi desktop Adobe Creative Cloud. (Catatan: Saya tidak bisa menghapus instalannya, jadi saya hanya menginstal unduhan tepat dari yang sudah ada. Ada program khusus untuk menghapus instalan Creative Cloud jika ini tidak berhasil.) Ini menyembuhkan masalah saya sepenuhnya.

Bagi mereka yang memiliki Creative Cloud, ini mungkin programnya. Bagi mereka yang tidak, menonton tab pemrosesan dan perubahan warna di sekitar tepi jendela dengan setiap kehilangan fokus dapat membantu Anda menemukan pelakunya.

JBMenzies
sumber
1

Saya menggunakan task manager untuk mencari proses latar belakang, dan Synaptics Touchpad adalah biang keladinya.

'Sopir' itu terus menyala, tetapi proses lain oleh Synaptics bermunculan setiap beberapa detik dan menyebabkan fokus hilang.

Saya mencopot pemasangan Synaptics dan hei presto, tidak ada lagi kehilangan fokus!

Cameron
sumber
1

Di Regedit (Tahan Tombol Mulai + R, lalu ketik regedit), ubah nilai HKEY_CURRENT_USER \ Control Panel \ Desktop \ ForegroundLockTimeout dari 0 hingga 30d40. Simpan dan mulai ulang komputer.

Heikki Sonninen
sumber
0

Periksa utilitas cadangan seperti Gladinet atau Nuance Cloud Connector. (Keduanya menggunakan mesin Gladinet dan masalah semacam ini sudah diketahui oleh mereka pada tahun 2012). Mereka menjalankan dll tanpa jendela / tugas-kurang berbasis di Explorer.exe.

tanitani
sumber
0

Samsung Galaxy S6 saya selalu berada dalam "Peningkatan Android" dan ketika terhubung melalui USB untuk pengisian daya, saya kehilangan masalah fokus setiap 10 detik, tetapi tidak ada jendela penjelajah yang muncul di depan. Saya telah mengubah port usb dan memilih mode "Usb Charging" dari ponsel, setelah masalah fokus hilang.

Namun masalah "Peningkatan Android" yang konstan masih ada dan masih perlu dipecahkan.

TarmoPikaro
sumber
0

Saya memiliki masalah yang sama. Kasus saya itu adalah program Windows XP yang dijalankan pada akun pengguna standar. Untuk itu diperlukan hak tinggi administrator untuk dijalankan. Jadi sementara itu berjalan di latar belakang, saya tidak melihatnya, sering mencuri fokus jendela saya saat ini (windows explorer, firefox, dan program lainnya). Sangat menyebalkan. Saya menggunakan focus.exe oleh happy droid untuk mengidentifikasi pelakunya. Anda juga dapat menggunakan Windows Focus Logger untuk tujuan yang sama.

Kamal
sumber
-1

Masalah yang sama saya temui. Laptop saya agak tua. Saya memiliki 2GB RAM dan Jendela 7. Setelah berjalan selama satu jam, hal yang sama terjadi setiap saat. Saya perhatikan kasus ini muncul ketika laptop terlalu panas. Solusi: Instal perangkat lunak Pembersih RAM otomatis. Sudah sebulan setelah menginstal pembersih RAM otomatis dan saya tidak pernah menghadapi masalah lagi.

Rudra Sagar
sumber