Etkin pencere (program) Windows 7'de beklenmedik bir şekilde odağı kaybediyor


23

Şu anda kullandığım gibi Windows'taki etkin penceremden (etkin program) bir şey odaklanmak (çalmak).

Birkaç istisna dışında, bu soruda açıklananla aynı sorun var :

  1. Bu davranışı (en azından) iki farklı bilgisayarda gözlemledim, bu yüzden bu makineye özgü değil.

  2. Bahsedilen bilgisayarlardan birinde Windows 7 HE 64-bit diğerinde Windows 7 Pro 32 bit vardır, bu nedenle bu sorun Windows'un belirli bir sürümüne veya belirli bir donanım platformuna özgü değildir.

  3. Bazen odak iyilik için kaybolur (kullanmaya devam etmek için pencereye tıklamanız gerekir), bazen sadece başka bir arka plan işlemine (?) Kaydırılır ve yaklaşık 2-3 saniye sonra geri döner.

  4. Son birkaç haftadır bu bilgisayarların hiçbirine yeni bir şey yüklemiyorum (Windows Update ve Chrome tarayıcı otomatik güncellemesi gibi diğer otomatik güncellemeler hariç) ve kesinlikle bahsedilen son yüklemeden günler sonra ortaya çıkmaya başlayan probles .

Bilgisayarımın şu anki davranışı gerçekten garip ve her şey sinir bozucu hale geliyor. Örnekler:

  1. Chrome'da bir metin seçiyorum ve aslında, seçim renginin maviden (etkin pencerelerde seçim) griye (etkin olmayan pencerede seçim) değiştiğini görüyorum.

  2. Word, Notepad ++ veya bir e-postayı Chrome'da Gmail'de düzenliyorum ve düzenleme işlemi birkaç saniye (odak kaydırıldığında) kalıcı olarak sona erdiğinde (odak kayboluyor).

Etkin, güncellenmiş ve çalışan Microsoft Security Essentials'ım var ve olağandışı bir şey bildirmiyor.

Çoğu zaman Google Chrome'da gerçekleştiğini hissettim. İlk başta o kadar emindim ki, bu tarayıcının son güncellemelerinden bazılarını suçlamaya neredeyse hazırdım. Ama ortaya çıktı, bunu Chrome'da alışılmadık şekilde sık sık fark ettim, çünkü bu benim en sık kullandığım program.

Herkes benzer sorunları var ya da vardı ya da herhangi bir fikri var, buna neden olabilir ya da nasıl düzeltilir?


2
Sorun Güvenli Mod'da da (ağ ile veya ağ olmadan) da oluşuyor mu? Başlat'ı tıklatın msconfigve Başlangıç sekmesini seçin . Hangi programlar var?
and31415

1
Tarif edilen sorunu "yakalamak" çok zordur çünkü çok sık gerçekleşmez. Örneğin - son iki gündür iz yok. Bu yüzden bunu "yakalamaya" çalışmak için Güvenli Mod'da günler çalışmak zorundayım . Ama fikir için teşekkürler. Ayrıca, aşağıdaki yanıtıma bakın.
trejder

Yanıtlar:


17

And31415'in bana önerdiği gibi Startup, msconfigprogram sekmesinde nelere dikkat ettim , ama sıra dışı bir şey bulamadım.

Şimdi bunun% 99'un bazı harici programlardan kaynaklandığı açıktır (daha önce fark edilmemiş olsa da ve yakın zamanda yeni bir şey yüklememiş olmama rağmen), Windows tarafından değil. Bu benim için en önemli nokta.

Biraz daha googledim ve bazı fikirler / tavsiyeler aldım, yani bir odak çalma fark ettikten hemen sonra Alt+ tuşuna basmaya F4çalışmalıyım. Bu, bu odak gizliliğine neden olabilecek süreçten çıkmalıdır. Sonra, ben kullanmayı deneyebilirsiniz Process Monitorden Sysinternalssadece çıkıldığı sürecini izlemek için paketin.

Bu bana bu soruna neyin sebep olduğu hakkında bir fikir verebilir.


1
Kimden msconfig, Hizmetler sekmesini seçin ve Tüm Microsoft hizmetlerini gizle seçeneğini etkinleştirin . Bunu da kontrol edin. Yararlı olabilecek resmi bir KB makalesi: Arka plan programlarının oyununuza veya programınıza müdahale edip etmediğini belirlemek için temiz bir başlangıç ​​yapın . Ayrıca, olağandışı bir şey görmeseniz bile, aldığınız tüm üçüncü taraf başlangıç ​​öğelerini ve hizmetlerini listelemek iyi bir fikir olacaktır.
and31415

@trejder, indirmek gerek yoktu technet.microsoft.com/en-us/sysinternals/bb896645 başka falan veya yakın zamanda çıkıldı işlemler listesi bakalım Windows'un yerleşik bir özelliği kastediyoruz? Teşekkürler!
Ryan,

Cevap olarak @Ryan Hayır, - Process Monitordan Sysinternalspaketin.
trejder

2
Kullanırken Process Monitor, Filtre menüsüne gidin ve aşağıdaki filtreyi ekleyin: İşlem Process Exito zaman Hariç Tut değil . Dokunmatik yüzey sürücüm bir hata veriyordu ve Windows Sorun Bildirimi ile bildirmeye çalışıyordu. Bu soru-cevap siteleri için% #! @ Teşekkür ederim yoksa dizüstü bilgisayarımı yok ederdim.
Daryl Van Sittert

Sadece başıma bu geldi. Olduğu ortaya çıktı \ Program Files (x86) \ ViveSetup \ PCClient \ HTCVRMarketplaceUserContextHelper.exe: C - HTC Vive için bir program. Bütün dizini sildim. Bunun bu haftanın başlarında güncellemelerinde bir sorun olduğundan şüpheleniyorum
MickyD

12

Dalgalanan süreçleri izlemek için bir C # programı programladım. Birisi bu soruna hangi işlemin neden olduğunu bulmak gerekiyorsa kod İşte.

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

İşlem başlangıcını (yeşil) ve sonlandırmayı (kırmızı) gösteren çıktı örneği

Çıktı örneği


11
İyi fikir ve hoş bir kod parçası. Ancak, bu geliştiriciler için değil, kullanıcılar için bir site olduğu için (bu, Süper Kullanıcı, Yığın Taşması değil), o zaman C # geliştiricisinin kodunuzu nasıl çalıştırabileceğine dair bir açıklama eklemelisiniz?
trejder

Bunun geliştirilmiş bir versiyonunu oluşturdum ve sorularınıza cevaplar da dahil olmak üzere kendi cevabıma koydum @trejder.
Palec

muhtemelen bu bir C # derleyici gerekmez PowerShell dönüştürmek?
phuclv

@phuclv emin devam et: D
Omar Alshaker

7

Odak muhtemelen bir arka plan görevi tarafından çalınmış. Odağı çalan bir pencere açar ve çok hızlı bir şekilde kapanır, ancak odak geri gelmez. Son zamanlarda, Microsoft Office'in böyle bir hatası vardı .

Bu tür süreçleri keşfetmek için, kullanabileceğiniz araçlar gibi Pencere Odak Logger ( ayna ) ya da benzer bir özel C # programı 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();
            }
        }
    }
}

Omar Alshaker tarafından sağlanan kodun parlak ve düzeltilmiş versiyonu . Ayrıca C # 6 gerektirmez. .NET 3.5 veya daha yenisini gerektirir.

csc.exe.NET Framework yüklemenizle birlikte gelen C # derleyicisini ( ) kullanarak derleyebilir ve ortaya çıkan yürütülebilir dosyayı çalıştırarak (yeşil) veya biten (kırmızı) gerçek zamanlı bir işlem günlüğü elde edebilirsiniz. Sonlandırmak için Ctrl+ tuşunu kullanın C.


Derleyiciyi bulmak için çalıştırın where /R %windir%\Microsoft.NET csc.exe. 32b veya 64b olsun, yüklü en son .NET sürümünden birini seçin. C # kodunu kaydedin Program.csve derleyin Program.exe:

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

Bu kod bana "'İşlem' türü veya ad alanı bulunamadı" hatasını veriyor. Bu yüzden System.dll için bir başvuru eklemek gerekiyordu.
Wilson

Tuhaf, @Wilson. Hangi csc.exe sürümünü kullanıyorsunuz?
Palec

1
Bu arada, komut satırı o zaman olacak csc.exe -reference:System.dll Program.cs. Bkz. -Reference C # derleyici seçeneği dokümanlar .
Palec

BenMicrosoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Wilson

Bu sürüm, VS 2017'nin (veya oluşturma araçlarının) eski bir yapısından geliyor gibi görünüyor. Mevcut VS 2017 ile sorunu yeniden oluşturamıyorum (15.6.4, csc -version2.7.0.62715 (db02128e)). Yine de, sorunu ve çözümünü paylaştığınız için teşekkür ederiz.
Palec

4

Benim durumumda wermgr.exe (Windows hata raporlaması) tekrar tekrar başladı. Otomatik olarak başlatılmasını durdurmak için aşağıdaki çözümü izledim ve bu sorunu çözdü.

  1. Başlat düğmesi -> Arama kutusuna Eylem merkezi -> yazın Enter.
  2. Yanındaki oku tıklayın Bakım genişletmek için.
  3. Sorun raporlarına yönelik çözümleri denetleyin altında Ayarlar'ı tıklayın .
  4. Tüm kullanıcılar için rapor ayarlarını değiştir'i tıklayın .
  5. Her sorun olduğunda, çözümü kontrol etmeden önce bana sor seçeneğini tıklayın .
  6. Tamam'ı tıklayarak çıkış yolunuzu tamamlayın.

3

Alt+F4Kesme programından çıkmak için kullanılan ipucu iyi çalıştı. Yeni çıkmış programı SysInternal's ile izlemek yerine ProcessManager, programı aşağıdaki gibi izledim:

  1. Açık Task manager
  2. Açık süreçlerin ekran görüntüsünü alın
  3. Tarayıcı, Posta vb. Seçeneğine geçin ve "odak kaybında bekleyin"
  4. Ara Alt+F4veren programdan çıkmak için basın
  5. Gidin Task managerve ekran görüntüsü ile açık süreçlerini karşılaştırmak
  6. Şimdi "eksik" süreç soruna neden oldu

Benim durumumda twcu.exe, ile başlayan bir program TP-Link Configuration tool. Harici WIFI-USB Çubukları tarafından kullanılır. Gibi burada da bildirilmiştir ( file.net de twcu.exe () ve burada computerbase.de [Alman] 'de twcu.exe ) TP-Link Configuration toolWIFI bağlantısı kendisi için gerekli değildir. Autostart'dan ( msconfig> system start) kaldırdım , bilgisayarı yeniden başlattım ve hala WIFI'ye kusursuz bir şekilde bağlandım - ve odak kaybı sorunları gitti!


2

NMBgMonitor.exeSorunu çözmek için başlangıç ​​hizmetlerinden kaldırıldım .

Google Chrome penceresinin birkaç saniye boyunca odağını kaybetmesi ve ardından geri dönmesi için de aynı sorunu yaşadım. Görev yöneticisi hizmetleri sekmesini izleyerek, odak kaybolduğunda, NMBgMonitor'un aktif olduğunu fark ettim (Nero ile bir ilgisi var).


2

benim durumumda ve muhtemelen tüm lenovo pc / dizüstü bilgisayar kılıfları, sorun birkaç dakikada bir çalışmaya başlayan ve gösterilen UI olmadan odak alarak lenovo svcguihlpr.exe ile oldu ... bu işlem yönetmek için güzel bir kullanıcı arabirimi veren Lenovo Access Connections uygulaması wifi ve geniş bant ağları .. ben hiç kullanmadım, hatta uI görev çubuğundan kaldırıldı ama hala çalışıyor ...

Bugün bu sorunun olduğunu buldum ve kaldırıldı!

Çok eğlenceli..

Bu arada, mümkün olan en aptalca şeyi yaparak buldum, telefonumu alıp ekrana bir video kaydı başlatarak görev yöneticisini çalıştırdım ve işime devam ettim .. odak kaybolduğunda bir saniye bekledim, kaydı durdurdum ve hangi işlemlerin hareket ettiğini kontrol etti, svcguihlpr bir saniyeden az bir süre üstte kaldı.

başkalarına yardımcı olacağını umuyoruz.


bir sorun xD olmaması hakkında "çok eğlenceli" demek
komikti

2

Bu problemim vardı, zamanlamanın rastgele olduğunu düşündüm ama değildi,

benim durumumda olduğu gibi önemsiz: duvar kağıdı değişiklikleri!
Duvar kağıdı olarak bir slayt gösterisi yaptım ve her değiştiğinde odak masaüstüne gidiyor!

Umarım bu, yorumları okuyan biri için geçerli olabilir ve bu kadar basit olurdu.

(Microsoft'un bunu düzeltip düzeltmeyeceğini bilmiyorum, çünkü en son Windows 10 derlemesinde sorun yaşıyorum (1803 - 17134.112))


1

Ben de sürekli odak kaybı pencere vardı. Birisinin WerSvc'i izlemeyi başardığını bir logger kullanarak soruna neden olduğunu okuyun. Bu aslında bir Windows Hata Raporlama Hizmeti olsa da, Windows Görev Yöneticisi - Hizmetler - Hizmetler'de devre dışı bırakmaya çalıştım.

Sonra odak kaybı sorunu durdu.

Belki siz deneyebilirsiniz.


1

Bu sorun beni delirtti! Bu yüzden programımdan kimin veya neyin odaklandığını söylemek için bir program yazmaya karar verdim. Age of Empires oynarken gerçek sinir bozucu ve oyun masaüstüne rastgele gidiyor.

İşte bulgular ....

Verizon! Evet, bazı Verizon yardımcı uygulamasını yükledim ve suçluydu!
- Denetim Masası -> Programlar ve Özellikler
bölümüne gidin ve Verizon ile ilgili her şeyi kaldırın.

Genellikle bir Vz ile başlayan programların isimlerini unuttum ... ve bir servis de var IW ... Dürüstçe unutuyorum çünkü makinemde ne varsa onlardan öldürmek için sabırsızlanıyordum (bu beni deli etti ), ancak Verizon uygulamasını kaldırdığınızda, sorun ortadan kalkar.


1

Benim durumumda, Windows işlem yöneticisine gidip herhangi bir programın sürekli başlatılıp kapatılmadığını kontrol ederek sorunu çözdüm. İndirdiğim bir programın (sanırım Windows 8 başlangıç ​​olarak adlandırıldığını) 7 saniyede bir yeniden başladığını fark ettim. Bununla ilgili her şeyi sildim ve işe yaradı!


1

Aktif pencerede birkaç saniyede bir odak kaybı sorunu yaşıyordum. Yazmaya devam etmek için sol tıklamak zorundayım. Çıldırtıcı.

Windows pencerelerinin kenarlarındaki alanların renk düzeninin her seferinde değişeceğini fark ettim. Aslında yazmadan odak kaybını görmenin kolay ve kolay bir yolu gibi görünüyordu.

Bu yüzden Windows görev yöneticisini başlattım ve işlemler sekmesini tıkladım. Bir süre izledikten sonra, Adobe masaüstü yöneticisinin odak renk kaybıyla birlikte eşzamanlı olarak listede çıktığını görebiliyordum.

Adobe Creative Cloud masaüstü uygulamasını indirip yeniden yükledim. (Not: Kaldırmadı, bu yüzden indirmeyi mevcut olanın üzerine yükledim. Bu işe yaramazsa Creative Cloud'u kaldırmak için özel bir program var.) Bu sorunumu tamamen iyileştirdi.

Creative Cloud'u olanlar için bu program olabilir. Olmayanlar için, işlem sekmesini izlemek ve her odak kaybıyla pencerelerin kenarlarındaki renk değişimi suçluyu bulmanıza yardımcı olabilir.


1

Arka plan süreçlerini aramak için görev yöneticisini kullandım ve Synaptics Touchpad suçluydu.

'Sürücü' sürekli olarak sürüyordu, ancak Synaptics'in başka bir süreci birkaç saniyede bir ortaya çıkıyor ve odağın kaybolmasına neden oluyordu.

Synaptics'i kaldırdım ve hey presto, artık odak kaybı yok!


1

Regedit'te (Başlat Düğmesi + R tuşunu basılı tutun, ardından regedit yazın), HKEY_CURRENT_USER \ Denetim Masası \ Desktop \ ForegroundLockTimeout değerini 0'dan 30d40'a değiştirin. Bilgisayarı kaydedin ve yeniden başlatın.


0

Gladinet veya Nuance Cloud Connector gibi bir yedekleme yardımcı programı olup olmadığını kontrol edin. (Her ikisi de Gladinet'in motorunu kullanır ve 2012'de zaten bu tür bir sorun onlar tarafından biliniyordu.) Explorer.exe'de bulunan penceresiz / görevsiz bir dll çalıştırıyorlar.


0

Samsung Galaxy S6'm sürekli "Android'i Yükseltiyor" idi ve şarj için USB ile bağlandığında, her 10 saniyede bir odak sorununu kaybettim, ancak önüne bir kaşif penceresi çıkmadı. USB bağlantı noktasını değiştirdim ve bu odak sorunu ortadan kalktıktan sonra telefondan "Usb Charging" modunu seçtim.

Ancak sürekli "Android'i Yükseltme" sorunu hala var ve hala çözülmesi gerekiyor.


0

Aynı problemim var. Benim durumum, standart bir kullanıcı hesabında çalıştırılan bir Windows XP programı idi. Çalıştırmak için yöneticinin yükseltilmiş haklarına ihtiyacı vardı. Bu yüzden arka planda çalışırken, onu görmedim, sık sık geçerli penceremin odağını çaldı (windows explorer, firefox ve diğer programlar). Çok sinir bozucu. Ben suçluyu tanımlamak için mutlu droid tarafından focus.exe kullandım . Ayrıca Windows Focus Logger'ı aynı amaçla kullanabilirsiniz.


-1

Aynı sorunla karşılaştım. Dizüstü bilgisayarım biraz eski. 2GB RAM ve Window 7 var. Bir saat çalıştıktan sonra aynı şey her seferinde olur. Bu durumun, dizüstü bilgisayarın aşırı ısınmasıyla ortaya çıktığını fark ettim. Çözüm: Otomatik bir RAM Temizleyici yazılımı yükleyin. Otomatik RAM temizleyiciyi kurduktan bir ay sonra tekrar sorunla karşılaşmadım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.