{ "name": "Move to Next Monitor (ignore splits)", "language": 0, "code": "using System;\r\nusing System.Drawing;\r\n\r\n// The 'windowHandle' parameter will contain the window handle for the:\r\n// - Active window when run by hotkey\r\n// - Trigger target when run by a Trigger rule\r\n// - TitleBar Button owner when run by a TitleBar Button\r\n// - Jump List owner when run from a Taskbar Jump List\r\n// - Currently focused window if none of these match\r\npublic static class DisplayFusionFunction\r\n{\r\n\tpublic static void Run(IntPtr windowHandle)\r\n\t{\r\n // If the window is maximized, send it to the next monitor and maximize it\r\n if (BFS.Window.IsMaximized(windowHandle))\r\n {\r\n if (BFS.Monitor.GetMonitorIDByWindow(windowHandle) == 1)\r\n {\r\n BFS.DisplayFusion.RunFunctionWithWindowHandle(\"Move Window to Next Monitor\", windowHandle);\r\n BFS.DisplayFusion.RunFunctionWithWindowHandle(\"Maximize Window (ignore monitor splits)\", windowHandle);\r\n }\r\n else\r\n {\r\n BFS.Window.MoveToMonitorMaximized(1, windowHandle);\r\n }\r\n }\r\n // If the window is not maximized, get its size and distance from left/top\r\n // Move it to the next monitor and set the correct size/location\r\n else\r\n {\r\n Rectangle windowSizeOriginal = BFS.Window.GetBounds(windowHandle);\r\n int distanceFromLeftOriginal = windowSizeOriginal.X - BFS.Monitor.GetMonitorBoundsByWindow(windowHandle).X;\r\n int distanceFromTopOriginal = windowSizeOriginal.Y - BFS.Monitor.GetMonitorBoundsByWindow(windowHandle).Y;\r\n \r\n if (BFS.Monitor.GetMonitorIDByWindow(windowHandle) == 1)\r\n {\r\n BFS.Window.MoveToNextMonitor(windowHandle);\r\n }\r\n else\r\n {\r\n BFS.Window.MoveToMonitor(1, windowHandle);\r\n }\r\n Rectangle targetMonitorBounds = BFS.Monitor.GetMonitorBoundsByWindow(windowHandle);\r\n Rectangle windowSizeTarget = new Rectangle(targetMonitorBounds.X + distanceFromLeftOriginal,\r\n targetMonitorBounds.Y + distanceFromTopOriginal, windowSizeOriginal.Width, windowSizeOriginal.Height);\r\n \r\n BFS.Window.SetSize(windowHandle, windowSizeTarget.Width, windowSizeTarget.Height);\r\n BFS.Window.SetLocation(windowHandle, windowSizeTarget.X, windowSizeTarget.Y);\r\n }\r\n\t}\r\n}", "description": "", "references": "System.Core.dll | System.Data.dll | System.dll | System.Drawing.dll | System.Management.dll | System.Web.dll | System.Windows.Forms.dll | System.Xml.dll" }