A Python receipt from Activestate which run two copies of Windows Explorer, resize them to fit each of them to half the desktop size and place them side by side to facilitate file management between two directories or disk drives.
from win32gui import EnumWindows, SetWindowPos, GetDesktopWindow, \
GetWindowRect, FindWindow, GetClassName, ShowWindow
import os, time
import pywintypes
def enumWinProc(h, lparams):
if GetClassName(h) == 'ExploreWClass':
lparams.append(h)
winList = []
EnumWindows(enumWinProc,winList)
winCnt = len(winList)
if winCnt == 0: # No Explorer running
os.system('explorer.exe')
while 1:
try:
FindWindow('ExploreWClass',None) #Wait for first instance to run
except pywintypes.error,e:
pass
else:
break
time.sleep(0.1) # Sleep for a while before continuing
os.system('explorer.exe') # Start second instance
elif winCnt == 1:
os.system('explorer.exe') # Start second instance
time.sleep(2) # Wait for Explorer to run
winList = []
EnumWindows(enumWinProc,winList) # Get handles of running Explorer
hDesk = GetDesktopWindow()
(dLeft,dTop,dRight,dBottom) = GetWindowRect(hDesk) # Get desktop size
SetWindowPos(winList[0],0,dRight/2,0,dRight/2,dBottom,0) # Set the windows sizes
SetWindowPos(winList[1],0,0,0,dRight/2,dBottom,0)
ShowWindow(winList[0],1) #Show the windows
ShowWindow(winList[1],1)