Login / Register
▼
Binary Fortress
Binary Fortress Software
CheckCentral
ClipboardFusion
CloudShow
DisplayFusion
FileSeek
HashTools
LogFusion
Notepad Replacer
Online Base64 Decoder
Online Base64 Encoder
Online JSON Formatter
ShellSend
TrayStatus
VoiceBot
WallpaperFusion
Window Inspector
More Apps...
DisplayFusion
CheckCentral
CloudShow
ClipboardFusion
FileSeek
VoiceBot
WallpaperFusion
Home
▼
Download
Download
Change Log
Download Beta
Beta Change Log
License (EULA)
▼
Features
Features
Incredible Desktop Wallpaper
Monitor Configuration
Monitor Splitting
Powerful Functions
Triggers
Multi-Monitor Taskbars
Useful Windows 10 Tweaks
Useful Windows 8 Tweaks
Windows Lock Screen
Multi-Monitor Screen Savers
Monitor Fading
Window Snapping
Window Management
Mouse Management
Alt+Tab Handler
Window Position Profiles
Desktop Icon Profiles
Remote Control
Available in dozens of Languages
Easy Administration
Free vs Pro
Purchase
Screenshots
Languages
▼
Help
Help Guide
FAQ
Discussions
Contact Us
Find My License
Mailing Address
Advanced Settings
Scripted Functions (Macros)
Display
Fusion
WARNING: You currently have Javascript disabled!
This website will not function correctly without Javascript enabled.
Title
Message
OK
Confirm
Yes
No
Move Window to Position "x" (Triple Monitors Only)
Return to DisplayFusion Scripted Functions (Macros)
Description
This is a fairly complex but powerful setup, please see the comments and instructions at the top of the script code for details.
Language
C# (.Net)
Minimum Version
9.6.1+
Created By
FluffyMule5433355003
Contributors
-
Date Created
Jan 10, 2020
Date Last Modified
Jan 10, 2020
Scripted Function (Macro) Code
Copy
Select All
Toggle Line Wrapping
using System; using System.Drawing; /* For Triple Monitors Only (Feel free to use/modify however you like tho :) HOW TO ASSIGN - Add six copies of this script and name them as per line below. - As you add each script, change the value of the int variable "WindowsSplitPosition" to the value in the SQUARE [] brackets then Verify Function and Save (OK Button). - Once you have created all six scripts, select each script, toggle them on and assign the image in the CURVED () brackes: Script Name | int Value | Image Name ------------------------------------------------------------------------------------------------------------------------------- "Move Window to Position 1" | [0] | (Windows Aero - Load Desktop Icons Profile #1) "Move Window to Position 2" | [1] | (Windows Aero - Load Desktop Icons Profile #2) "Move Window to Position 3" | [2] | (Windows Aero - Load Desktop Icons Profile #3) "Move Window to Position 4" | [3] | (Windows Aero - Load Desktop Icons Profile #4) "Move Window to Position 5" | [4] | (Windows Aero - Load Desktop Icons Profile #5) "Move Window to Position 6" | [5] | (Windows Aero - Load Desktop Icons Profile #6) HOW TO USE - Clicking buttons 1, 2 & 3 will move the window to corresponding monitors 1, 2 & 3. *Only buttons 1, 2 & 3 work without ctrl or shift being held. - SHIFT & Clicking moves the window to one of the below corresponding positions (imagine as 3 monitors split in half, giving you 6 positions from left to right): Button 1 | Left Monitor | Fill Left Half Button 2 | Left Monitor | Fill Right Half Button 3 | Middle Monitor | Fill Left Half Button 4 | Middle Monitor | Fill Right Half Button 5 | Right Monitor | Fill Left Half Button 6 | Right Monitor | Fill Right Half - CONTROL & Clicking moves the window to one of the below corresponding positions: Button 1 | Left Monitor | Fill Ten Fourteenths of the Left Side Button 2 | Left Monitor | Fill Four Fourteenths of the Right Side Button 3 | Middle Monitor | Fill Left Half Button 4 | Middle Monitor | Fill Right Half Button 5 | Right Monitor | Fill Ten Fourteenths of the Left Side Button 6 | Right Monitor | Fill Four Fourteenths of the Right Side As you can see, the above values corresponde to the int arrays "WindowSplitShft" and "WindowSplitCtrl" and can be modified to suit. Just make sure you change them so they match in all 6 scripts. WHY I CREATED THIS SCRIPT - Firstly I only have 6 buttons for lots of functionality - Clicking and SHIFT clicking buttons are very useful when ever I want lots of windows on screen and want to quickly arrange each one. - CONTROL clicking is very useful when I want to use a single window (IE Visual Studio) on the centre monitor and it's child windows (IE Properties, Find, etc) directly left and right of the centre monitor. This allows me a full monitor for my coding window whilst still giving me space for key IDE info left and right. This also allows space for the far left and right positions to be used as needed (IE Windows Explorer, Browser, etc). Don't know if anyone else will find this useful, but I have been using this for over a year now and found it very helpful so wanted to share. */ public static class DisplayFusionFunction { public static void Run(IntPtr windowHandle) { if (windowHandle == IntPtr.Zero) return; int WindowSplitPosition = 0; int[] WindowSplitShft = new int[] {1, 1, 1, 1, 1, 1}; int[] WindowSplitCtrl = new int[] {10, 4, 1, 1, 4, 10}; bool IsModifierDown = false; int[] WindowSplit = new int[]{}; int windowX = 0, windowY = 0, windowW = 0, windowH = 0; Rectangle[] monitors = BFS.Monitor.GetMonitorWorkAreas(); Rectangle window = BFS.Window.GetBounds(windowHandle); Rectangle monitor = new Rectangle(); if (BFS.Input.IsKeyDown("16")) { WindowSplit = WindowSplitShft; IsModifierDown = true; } else if (BFS.Input.IsKeyDown("17")) { WindowSplit = WindowSplitCtrl; IsModifierDown = true; } if (!IsModifierDown) { switch (WindowSplitPosition) { case 0: monitor = monitors[0]; windowX = monitor.X; windowW = monitor.Width; break; case 1: monitor = monitors[1]; windowX = monitor.X; windowW = monitor.Width; break; case 2: monitor = monitors[2]; windowX = monitor.X; windowW = monitor.Width; break; } } else { switch (WindowSplitPosition) { case 0: monitor = monitors[0]; windowX = monitor.X; windowW = (monitor.Width / (WindowSplit[0] + WindowSplit[1])) * WindowSplit[0]; break; case 1: monitor = monitors[0]; windowX = monitor.X + ((monitor.Width / (WindowSplit[0] + WindowSplit[1])) * WindowSplit[0]); windowW = (monitor.Width / (WindowSplit[0] + WindowSplit[1])) * WindowSplit[1]; break; case 2: monitor = monitors[1]; windowX = monitor.X; windowW = (monitor.Width / (WindowSplit[2] + WindowSplit[3])) * WindowSplit[2]; break; case 3: monitor = monitors[1]; windowX = monitor.X + ((monitor.Width / (WindowSplit[2] + WindowSplit[3])) * WindowSplit[2]); windowW = (monitor.Width / (WindowSplit[2] + WindowSplit[3])) * WindowSplit[3]; break; case 4: monitor = monitors[2]; windowX = monitor.X; windowW = (monitor.Width / (WindowSplit[4] + WindowSplit[5])) * WindowSplit[4]; break; case 5: monitor = monitors[2]; windowX = monitor.X + ((monitor.Width / (WindowSplit[4] + WindowSplit[5])) * WindowSplit[4]); windowW = (monitor.Width / (WindowSplit[4] + WindowSplit[5])) * WindowSplit[5]; break; } } windowY = monitor.Y; windowH = monitor.Height; if (windowX == window.X && windowY == window.Y && windowW == window.Width && windowH == window.Height) return; BFS.Window.SetSizeAndLocation(windowHandle, windowX, windowY, windowW, windowH); BFS.Window.Focus(windowHandle); } }
Copyright © 2007-2021 Binary Fortress Software
•
News
•
Discussions
•
FAQ
•
Support
•
Privacy
•
ToS
•
Get DisplayFusion Merch