The module "monitorfunctions.py" (tested with "unittestMonitorfunctions.py") is written for manipulation of windows on the monitors/displays. These functions are used in the grammar tasks.
With the function move_to_monitor a window is moved to another monitor
move_to_monitor(winHndle, newMonitor, oldMonitor, resize):
””“move window to another monitor
preserving position of restore_area as much as possible.
- get winHndle for example with winHndle = win32gui.GetForegroundWindow()
- get current monitor (oldMonitor) with get_nearest_monitor_window(winHndle)
- get other monitor (in case of 2 monitors) with get_other_monitors(mon), and take
the first of the list that is retured.
resize: 0 if window is (assumed to be) fixed in size, can be found with:
return 1 if a window can be resized (like Komodo etc). Not eg calc.
Moving inside one monitor:
maximize_window(winHndle): just maximize
minimize_window(winHndle): just minimize
restore_window(winHndle, ...): placing in various spots and widths/heights
see at definition for parameters
Position of the taskbar
get_taskbar_position(): gives the placing of the taskbar (‘left’, ‘bottom’, ‘right’, ‘top’).
This can be used for NatSpeak/Unimacro keystroke macros which can depend on this position (for example stacked taskbar windows in Window 7 Aero Peek view).
Getting mouse positions of monitor
(new, December 2017)
get_current_monitor_rect ( pos ) and
Pass the current mouse position as a tuple (xpos,ypos)
Returns the rect tuple of the monitor, with _work only the work area, so excluding task bar or Dragon bar.
- unittesting is done with the file unittestMonitorfunctions.py (in the unimacro_test subdirectory of Unimacro).
- demos can be done by uncommenting the different test_... functions at the bottom of the script monitorfunctions.py, and run the script.
- See for more details in the code...