Const UM_MIRROR_CLIENT = "C:\Program Files\UltraMon\UMMirrorClient.exe"
Const CAPTION_HEIGHT = 31 'in pixel
Const MIRROR_OPTIONS = "" 'one or more options
MON_SRC = Array(1, 2) 'source monitors
MON_DST = Array(3, 4) 'destination monitors for preview windows
Const PROCESS_PRIORITY = "low" 'low, belownormal, normal, abovenormal, high, realtime

cmd = "/w"
If MIRROR_OPTIONS <> "" Then cmd = cmd & " " & MIRROR_OPTIONS
Set sys = CreateObject("UltraMon.System")
For i = 0 To UBound(MON_SRC)
	cmd = cmd & " "
	
	Set monSrc = sys.Monitors(MON_SRC(i) - 1)
	Set monDst = sys.Monitors(MON_DST(i) - 1)
	
	scaleCx = monDst.Width / monSrc.Width
	scaleCy = (monDst.Height - CAPTION_HEIGHT) / monSrc.Height
	
	scale = scaleCx
	If scaleCy < scaleCx Then scale = scaleCy
	
	mpWidth = monSrc.Width * scale
	mpX = monDst.Left + (monDst.Width - mpWidth) / 2
	mpY = monDst.Top + (monDst.Height - CAPTION_HEIGHT - monSrc.Height * scale) / 2
	
	cmd = cmd & MON_SRC(i) & "," & FormatNumber(mpX, 0, -1, 0, 0)  & "," & FormatNumber(mpY, 0, -1, 0, 0) & "," & FormatNumber(mpWidth, 0, -1, 0, 0)
Next

Set util = CreateObject("UltraMon.Utility")
util.Run "%ComSpec% /C ""start """" /" & PROCESS_PRIORITY & " """ & UM_MIRROR_CLIENT & """ " & cmd & """"




