Wiem, że jest to dość stary temat, ale nigdy nie podobała mi się również funkcja Areo Peek podczas używania Alt+ TABdo przełączania zadań. Co więcej, nie odmawiam całkowicie Areo Peek - na przykład lubię patrzeć na pulpit systemu Windows za pomocą WIN+ Space.
Dużo próbowałem wyłączyć Areo Peek tylko dla przełączania zadań Alt+ TAB, ale tak naprawdę nic dla mnie nie działało. Wiem o wszystkich wskazówkach rejestru, na przykład ustawieniu opóźnienia Aero Peek w milisekundach na bardzo wysoką wartość. Ale to nie działa, przynajmniej nie na wszystkich komputerach - z mojego doświadczenia możesz ustawić wysoką wartość, która wciąż jest ograniczona do 3000 ms wewnętrznie (być może działało to przed Service Pack dla Windows 7).
Postanowiłem więc pójść inną drogą i spróbować rozwiązać ten problem za pomocą AutoHotkey . Ten skrypt wyłącza Aero Peek tylko dla Alt+ TABi tylko do tego - dzięki czemu możesz nadal korzystać z innych funkcji Aero Peek.
Skrypt jest testowany pod kątem wersji AutoHotkey „AutoHotkey_L 1.1.00.00” w systemie Windows 7 Professional w wersji 64-bitowej z użytkownikiem systemu Windows z uprawnieniami administratora - i do tej pory zgłaszał działanie na wszystkich systemach, z których otrzymałem opinię. Wystarczy zainstalować AutoHotkey i ustawić automatyczne uruchamianie pliku skryptu podczas uruchamiania systemu Windows. Jest bardzo lekki, zużywa bardzo mało zasobów i czasu procesora.
Zamieszczam go tutaj w nadziei, że pomoże to każdemu, kto ma ten problem. Pobierz skrypt z:
http://dl.dropbox.com/u/15020526/Privat/Software/GA/AutoHotkey/DisableAeroPeekForAltTab_1.0.zip
; ==============================================================
;
; AVOID "AERO PEEK" FOR ALT-TAB - AUTOHOTKEY-SCRIPT
;
; Disables Windows 7 Areo Peek feature for ALT-TAB, and only
; for this, so that other Areo Peek features (like WIN+SPACE)
; can still be used.
;
; This script can be run with AutoHotkey (http://www.autohotkey.com/),
; tested against Version AutoHotkey_L 1.1.00.00 with Windows 7
; Professional 64 bit with a Windows user with admin rights.
;
; @author Timo Rumland <timo.rumland${at}the-cr.de>, 19.09.2011
; @version 1.0
;
; --------------------------------------------------------------
;
; LICENSE
;
; This software is distributed under the FreeBSD License.
;
; Copyright (c) 2011 Timo Rumland <timo.rumland${at}the-cr.de>. All rights reserved.
;
; Redistribution and use in source and binary forms, with or without modification, are
; permitted provided that the following conditions are met:
;
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
;
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
;
; THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED
; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
; FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
; ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
; The views and conclusions contained in the software and documentation are those of the
; authors and should not be interpreted as representing official policies, either expressed
; or implied, of <copyright holder>.
;
; ==============================================================
#NoEnv
#SingleInstance force
SendMode Input
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode 2 ; 2: A window's title can contain WinTitle anywhere inside it to be a match.
; =======
; Global
; =======
visualEffectsRegistryKey := Object()
visualEffectsRegistryKey.valueType := "REG_DWORD"
visualEffectsRegistryKey.rootKey := "HKEY_CURRENT_USER"
visualEffectsRegistryKey.subKey := "Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects"
visualEffectsRegistryKey.valueName := "VisualFXSetting"
visualEffectsRegistryKey.value := 3 ; Manual Visual FX Settings
enableAeroPeekRegistryKey := Object()
enableAeroPeekRegistryKey.valueType := "REG_DWORD"
enableAeroPeekRegistryKey.rootKey := "HKEY_CURRENT_USER"
enableAeroPeekRegistryKey.subKey := "Software\Microsoft\Windows\DWM"
enableAeroPeekRegistryKey.valueName := "EnableAeroPeek"
enableAeroPeekRegistryKey.enabledValue := 1
enableAeroPeekRegistryKey.disabledValue := 0
; ===============
; Initialization
; ===============
; Initially write "VisualFXSetting" registry key to "manual settings"
writeRegistryKey( visualEffectsRegistryKey, visualEffectsRegistryKey.value )
; ========
; Hotkeys
; ========
; -----------------------------------------------------------------------------
; This is the ALT-TAB hotkey that triggers setting Aero Peek to disabled
; right before Windows displays the ALt-TAB-Menu. After releasing the ALT-key,
; Areo Peek will be enabled again.
; -----------------------------------------------------------------------------
~!Tab::
writeRegistryKey( enableAeroPeekRegistryKey, enableAeroPeekRegistryKey.disabledValue )
KeyWait Alt
writeRegistryKey( enableAeroPeekRegistryKey, enableAeroPeekRegistryKey.enabledValue )
return
; ==========
; Functions
; ==========
; ----------------------------------------------------------------------
; Writes the given value to the given registry key. The "registryKey"
; is an object with the properties "valueType", "rootKey", "subKey" and
; "valueName", suitable to the AHK function "RegWrite".
; ----------------------------------------------------------------------
writeRegistryKey( registryKey, value )
{
valueType := registryKey.valueType
rootKey := registryKey.rootKey
subKey := registryKey.subKey
valueName := registryKey.valueName
RegWrite %valueType%, %rootKey%, %subKey%, %valueName%, %value%
}
Możesz go rozpowszechniać dowolnie, na licencji FreeBSD.