2011年11月19日 星期六

解決視窗焦點一直跳離的問題

當程式嘗試取得使用者的工作焦點時它們會 "跳" 到最前面的視窗來讓使用者注意到,Windows 中有一個預設的設定可以防止這個動作;如果你的程式一直在無預警或未操作的狀況下送出取的焦點的要求,可能是這個設定已被更改。

我的狀況是當前使用的視窗每隔十幾秒會跳離目前使用中的狀況有如按下 Alt+Tab,但卻沒有切換到任何一個程式,若干秒後又會再切回來,實在是異常的惱人,後來找到方法如下可以解決這個問題:

注意: 這個方法需要更改電腦的註冊檔,請謹慎的操作並確認只更動步驟內的值;強烈建議您備份電腦內的註冊檔以防意外發生。



1. 按下鍵盤上的 視窗鍵+R 呼出 執行視窗

2. 在執行視窗的輸入欄位鍵入 regedit 後按下 確定。這個動作會開啟 登錄編輯程式

3. 先將所有已展開的樹狀目錄收合後依下面的路徑展開:
HKEY_CURRENT_USER \ Control Panel 

4. 點擊 Desktop,在右手邊的視窗內找到一個名為 ForegroundLockTimeout 的參數並以滑鼠雙擊它打開一個 編輯 DWORD(32位元) 值 的視窗。

5. 將 數值資料 欄位更改為 30d40
注意:更改數值時確定右邊的 底數 欄位選擇在 16進位 的位置。

6. 按下確定後關閉登錄編輯程式並重開機使設定生效。

7. 如此設定之後程式應該不會再搶目前使用程式的焦點了。


本文的操作環境是 Windows7 64bit premium。


--
參考引用:
How To Prevent Programs From Stealing Focus in Windows


9 則留言:

  1. 版主你好...已經照你的步驟去改了,發現原本設定就是這樣...還是不能解決:(
    請問我的電腦還有救嗎?
    這已經是重灌後的電腦..也是w7操作環境!

    回覆刪除
  2. 不久前我的電腦也重灌過,設定已還原,目前沒有出現這篇的問題(以前我也不知道是怎麼出現的...);
    我重灌後,Desktop 內 ForegroundLockTimeout 的數值預設是 0x00000000 (0),若您的電腦更改 30d40 跟 0 都還是一樣的問題的話,那可能要檢查是不是您安裝了什麼程式造成焦點視窗一直跳掉的問題了。

    回覆刪除
  3. 版主您好,目前我也有一樣的問題,但依您的方法後我在編輯程式中找不到ForegroundLockTimeout這個東西,如何解決?

    回覆刪除
    回覆
    1. 您好,若是註冊表內沒有此值的話可以嘗試自己新增一個,
      在空白處右鍵 新增>DWORD(32位元)值 ,
      數值名稱命名為 ForegroundLockTimeout 數值 設為 30d40 後重開機試試看問題有沒有解決。

      刪除
  4. 版主你好...已經照你的步驟去改了,但是重開機後數值又被電腦改回來,剛改完重開就可以,但下一次又回復............

    回覆刪除
  5. 我找到跳掉的另一種可能
    筆記型電腦的電源掛掉也可能造成搶視窗的狀況
    (解決方法就是 拔掉電池....)

    回覆刪除
  6. 版主你好!
    試了版主的方法修好我的電腦,
    原本都想放棄要去重灌了,謝謝!

    回覆刪除
  7. 版主你好...已經照你的步驟去改了,但是重開機後數值又被電腦改回來,剛改完重開就可以,但下一次又回復............

    回覆刪除
    回覆
    1. 請嘗試從新增移除程式中以最近安裝的日期排序依次檢查最近安裝的程式並移除看看,很有可能是某個程式在安裝後取得權限硬搶下控制權導致重開機後設定遭復原。

      再不行的話只能重灌了,推薦搭配"再生龍"備份重灌後的狀態減少未來重灌的時間。

      刪除