2013-01-22 41 views
3

在Windows 7焦點如下鼠標衝突,所以只需將鼠標懸停在用鼠標給集中到一個窗口。此功能默認情況下未啓用,但您可以在控制面板中啓用該功能。 (這裏是走路徑:與ReSharper的導航

[輕鬆訪問中心 - >使鼠標更易於使用 - >查詢「懸停在用鼠標激活窗口」])。

我喜歡這個功能很多,但有時它讓我很煩當我嘗試使用Visual Studio ReSharper的打開一個C#類。我將按CTRL + N並鍵入我想要查看的類的名稱(例如,「MyWpfClass」)。然後,Resharper將在頂部顯示「MyWpfClass」的建議下拉菜單。我打回,現在ReSharper的打開一個下拉菜單,它可以讓我「MyWpfClass.xaml」和「MyWpfClass.xaml.cs」之間進行選擇。但是,如果鼠標光標位於錯誤的位置,則下拉框會在一秒鐘內關閉,然後我又回到原點。有沒有辦法解決這個問題,而不關閉焦點 - 跟隨鼠標功能?

+0

雖然我完全不知道這是否是ReSharper的責任,我會推薦以防萬一,在http://youtrack.jetbrains.net上打開一個問題。 –

回答

1

我與微軟的Outlook相同的問題:因爲Windows把它當作一個窗口,而不是新郵件窗口的一部分自動建議列表中的聯繫人會自動關閉。

你可以使用NiftyWindows,它具有相同的選項「焦點跟隨鼠標」,通過它的上下文菜單訪問。

或者,因爲它是寫在AutoHotkey的,你可以使用壓縮並運行它的子程序「XWN_FocusHandler」到一個獨立的腳本:

#Persistent 
#SingleInstance force 
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 
#Warn All, OutputDebug ; Recommended for catching common errors. 
SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 

SetTimer, XWN_FocusHandler, 100 
return 

XWN_FocusHandler: 
    CoordMode, Mouse, Screen 
    MouseGetPos, XWN_MouseX, XWN_MouseY, XWN_WinID 
    If (!XWN_WinID) 
     Return 

    If ((XWN_MouseX != XWN_MouseOldX) or (XWN_MouseY != XWN_MouseOldY)) 
    { 
     IfWinNotActive, ahk_id %XWN_WinID% 
      XWN_FocusRequest = 1 
     Else 
      XWN_FocusRequest = 0 

     XWN_MouseOldX := XWN_MouseX 
     XWN_MouseOldY := XWN_MouseY 
     XWN_MouseMovedTickCount := A_TickCount 
    } 
    Else 
     If (XWN_FocusRequest and (A_TickCount - XWN_MouseMovedTickCount > 500)) 
     { 
      WinGetClass, XWN_WinClass, ahk_id %XWN_WinID% 
      If (XWN_WinClass = "Progman") 
       Return 

      ; checks wheter the selected window is a popup menu 
      ; (WS_POPUP) and !(WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME) 
      WinGet, XWN_WinStyle, Style, ahk_id %XWN_WinID% 
      If ((XWN_WinStyle & 0x80000000) and !(XWN_WinStyle & 0x4C0000)) 
       Return 

      IfWinNotActive, ahk_id %XWN_WinID% 
       WinActivate, ahk_id %XWN_WinID% 

      XWN_FocusRequest = 0 
     } 
Return