I'm far from an expert but using the system virtual screen height and width and the Object positional properties you may be able to create a script that keeps everything centered (until a user moves it if you allow them to).
I wish I had the expertise to help write the script . . (and I'll hack at it a bit) . . but I hope this helps some.
System.VscreenLeft, System.VScreenTop, System.VScreenWidth,
System.VScreenHeight
These are the suggested properties to use when checking the monitor
coordinates, since they take in consideration the whole virtual screen area, and
not only the primary monitor. This will still work in a single monitor setup but
will also support multi-monitor setups.
Note that the virtual screen origin is NOT generally (0,0), but it is
(VscreenLeft, VscreenTop). Because of this .VscreenWidth returns the WIDTH of
the virtual screen, not the right border! To calculate the right and bottom
borders use the following code:
VirtualScreenRight = System.VScreenLeft + System.VScreenWidth
VirtualScreenBottom = System.VScreenTop + System.VScreenHeight
Object.Top, Object.Bottom, Object.Left, Object.Right, Object.Move,
Object.Rotation (and Object.States("name").Rotation)
With these positioning properties, you can explicitly set or retrieve the
location of one side of the object.
If you want to reposition an object, the most efficient was to do it is via
'Move' To do this you specify x and y coordinates in pixels of where you want to
place the object.
You can also rotate an object using Object.Rotation.
Examples:
Object.Top = 500
Object.Move 500,200
For x = 1 To 10
Object.Rotation = x*36
Object.Sleep 200
Next