;ReloadOnResolutionChange ;By jgpaiva ;date: Jan 2011 ;function: Adjusts windows to a predefined or user-defined desktop grid. Getmonitorsizes() Settimer, ReloadOnResolutionChange, 1000 #maxthreadsperhotkey,1 #singleinstance,force #noenv return ReloadOnResolutionChange: OldMonitorCount := MonitorCount loop,%MonitorCount% { OldMonitor%a_Index%Left := Monitor%a_Index%Left OldMonitor%a_Index%Bottom := Monitor%a_Index%Bottom OldMonitor%a_Index%Right := Monitor%a_Index%Right OldMonitor%a_Index%Top := Monitor%a_Index%Top OldMonitorReal%A_Index%Left := MonitorReal%A_Index%Left OldMonitorReal%A_Index%Bottom := MonitorReal%A_Index%Bottom OldMonitorReal%A_Index%Right := MonitorReal%A_Index%Right OldMonitorReal%A_Index%Top := MonitorReal%A_Index%Top } Getmonitorsizes() if (MonitorCount <> OldMonitorCount) NotifyMonitorChange() loop,%MonitorCount% { if( OldMonitor%a_Index%Left <> Monitor%a_Index%Left OR OldMonitor%a_Index%Bottom <> Monitor%a_Index%Bottom OR OldMonitor%a_Index%Right <> Monitor%a_Index%Right OR OldMonitor%a_Index%Top <> Monitor%a_Index%Top) NotifyMonitorChange() if( OldMonitorReal%A_Index%Left <> MonitorReal%A_Index%Left OR OldMonitorReal%A_Index%Bottom <> MonitorReal%A_Index%Bottom OR OldMonitorReal%A_Index%Right <> MonitorReal%A_Index%Right OR OldMonitorReal%A_Index%Top <> MonitorReal%A_Index%Top) NotifyMonitorChange() } return NotifyMonitorChange() { global Loop,%0% { if %A_Index% <> 1 run,%A_Index } } Getmonitorsizes() { global sysget,monitorCount,MonitorCount loop,%monitorCount% { sysget,monitorReal,Monitor,%A_Index% sysget,monitor,MonitorWorkArea,%A_Index% monitor%a_Index%Left :=MonitorLeft monitor%a_Index%Bottom :=MonitorBottom monitor%a_Index%Right :=MonitorRight monitor%a_Index%Top :=MonitorTop monitor%a_Index%Width :=MonitorRight - MonitorLeft monitor%a_Index%Height :=MonitorBottom - MonitorTop monitorreal%A_Index%Left :=MonitorRealLeft monitorreal%A_Index%Bottom :=MonitorRealBottom monitorreal%A_Index%Right :=MonitorRealRight monitorreal%A_Index%Top :=MonitorRealTop monitorreal%A_Index%Width :=MonitorRealRight - MonitorRealLeft monitorreal%A_Index%Height :=MonitorRealBottom - MonitorRealTop } return }