I change screen resolutions on my Mac frequently — adding or removing external monitors, using external monitors of different sizes… Every once in a while a window is placed off screen or is too large to be resized within the screen available.
Here’s a script to fix that…
Launch the Apple Script Editor, and create a new script. Enter the following in the script…
-- Example list of processes to ignore: {"xGestures"} or {"xGestures", "OtherApp", ...}
property processesToIgnore : {"GeekTool"}
-- Get the size of the Display(s), only useful if there is one display
-- otherwise it will grab the total size of both displays
tell application "Finder"
set _b to bounds of window of desktop
set screen_width to item 3 of _b
set screen_height to item 4 of _b
end tell
tell application "System Events"
set allProcesses to application processes
set _results to ""
repeat with i from 1 to count allProcesses
set doIt to 1
repeat with z from 1 to count processesToIgnore
if process i = process (item z of processesToIgnore) then
set doIt to 0
end if
end repeat
if doIt = 1 then
tell process i
repeat with x from 1 to (count windows)
set winPos to position of window x
set _x to item 1 of winPos
set _y to item 2 of winPos
set winPos to size of window x
set _width to item 1 of winPos
set _height to item 2 of winPos
if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
set position of window x to {0, 22}
end if
if (_width > screen_width or _height > screen_height) then
set size of window x to {screen_width - 100, screen_height - 100}
end if
end repeat
end tell
end if
end repeat
end tell
Save the file, and then export as an application. Do File –> Save As, and change the File Format to be Application. Once completed, you now have an executable (double-clickable) program that will run the script.
Note that I got this code from somewhere like this, modified slightly for my use.
It’s also worth mentioning that someone else has already fixed this problem with a free app named Forget-Me-Not.
Also useful is a program called Divvy that helps you re-size windows in general. It will move off-screen windows back on screen for you.
http://mizage.com/divvy/