How can I make my active window more obvious on Windows 7 without disabing transparency?

This is one of those hard problems that many people are facing.

Someone was so troubled with this, that they created a style and hacked a better contrast in it. You can download the style from the Windows 7 Forum in the post Solved - active and inactive windows too similar in Aero.

In case the link dies, a copy can be found at the Wayback Machine.


An AutoHotkey solution for non-maximized windows is described in the article
Script to draw a border around an active window with autohotkey.

The following script is adapted from that article and will draw a 5-pixels red border around the active window :

#Persistent

SetTimer, DrawRect, 50
border_thickness = 5
border_color = FF0000

DrawRect:
WinGetPos, x, y, w, h, A
Gui, +Lastfound +AlwaysOnTop +Toolwindow
iw:= w+4
ih:= h + 4
w:=w+ 8
h:=h + 8
x:= x - border_thickness
y:= y - border_thickness
Gui, Color, FF0000
Gui, -Caption
WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% 0-0 %border_thickness%-%border_thickness% %iw%-%border_thickness% %iw%-%ih% %border_thickness%-%ih% %border_thickness%-%border_thickness%
Gui, Show, w%w% h%h% x%x% y%y% NoActivate, Table awaiting Action
return

This is a little update/change from AutoHotkey script above from harrymc answered Apr 8 '14 at 7:17. many thanks for that. I added an exception handler and that windows cant be used maximized:

#Persistent
#SingleInstance,force
SetTimer, DrawRect, 50
border_thickness = 6
border_color = FF0000
DrawRect:
WinGetPos, x, y, w, h, A
WinGet, OutputVar , MinMax, A
; make maximized windows movable
; -1: The window is minimized (WinRestore can unminimize it).
;  1: The window 
; is maximized (WinRestore can unmaximize it).
;0: The window is neither minimized nor maximized.
if(OutputVar == 1){
   WinGetPos,x,y,w,h
   WinRestore,A
   Sleep,500
   WinMove,A,,% x + 3, % y + 3, % A_ScreenWidth - 199, % A_ScreenHeight - 199
 }
Gui, +Lastfound +AlwaysOnTop +Toolwindow
iw:= w+4
ih:= h + 4
w:=w+ 8
h:=h + 8
x:= x - border_thickness
y:= y - border_thickness
Gui, Color, FF0000
Gui, -Caption
WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% 0-0 %border_thickness%-%border_thickness% %iw%-%border_thickness% %iw%-%ih% %border_thickness%-%ih% %border_thickness%-%border_thickness%
try{
Gui, Show, w%w% h%h% x%x% y%y% NoActivate, Table awaiting Action
     } catch {
        Sleep,2000
     }
return

To explain the changes: When I closed tabs in google chrome, spread across my 4 monitors, via Control + w, I occasionally closed the wrong ones. Solution searched and found yesterday on this page. After only a few minutes I got an exception when I opened the "Save as" window of notepad ++. This exception is now intercepted via the try, catch block. In addition, I had the problem that I did not see the red frame on maximized windows, and therefore i restore maximized windows inside "if (OutputVar == 1) { ...".