Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Start Websites In Different Locations

Description
This function starts all of Binary Fortress' web pages in different positions with the default web browser.
Language
C#.net
Minimum Version
Created By
NetMage
Contributors
-
Date Created
Jul 25, 2016
Date Last Modified
Jul 25, 2016

Scripted Function (Macro) Code

using System;
using System.Drawing;
using System.Collections.Generic;

// Description: This function starts all of Binary Fortress' web pages in different positions with the default web browser.
// Based on the Start Multiple Websites on Different Monitors function Created By: Thomas Malloch (BFS)

class Rectangles : List<Rectangle> { // helper for List<Rectangle> initialization
    public void Add(int x, int y, int w, int h) {
        Add(new Rectangle(x, y, w, h));
    }
}

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction {
	public static void Run(IntPtr windowHandle) {
		//make an array of websites you would like to have opened
		string[] websites = {
			"http://www.binaryfortress.com/",
			"http://www.displayfusion.com/",
			"http://www.checkcentral.cc/",
			"http://www.clipboardfusion.com/",
			"http://www.fileseek.ca/",
			"http://www.itunesfusion.com/",
			"http://www.logfusion.ca/",
			"http://www.wallpaperfusion.com/"
		};
		// make an aray of window positions for the websites
		Rectangle[] positions = new Rectangles {
            { 50, 50, 500, 500 },
            { 550, 50, 500, 500 },
            { 50, 550, 500, 500 },
            { 550, 550, 500, 500 },
            { 550, 1050, 500, 500 },
            { 50, 1050, 500, 500 },
            { 1050, 550, 500, 500 },
            { 1050, 50, 500, 500 }
		}.ToArray();

		for (int i = 0; i < websites.Length; ++i) {
			var window = BFS.Web.OpenUrlNewWindow(websites[i]);

			//if we failed to get the handle, continue to next loop iteration
			if(window == IntPtr.Zero)
				continue;

			//move the window to the specified location
			var p = positions[i];
            BFS.Window.SetSizeAndLocation(window, p.X, p.Y, p.Width, p.Height); // shouldn't this take a Rectangle???
		}
	}
}