Консольное приложение для запуска нескольких экземпляров IE, развернутых на нескольких мониторах - PullRequest
0 голосов
/ 10 февраля 2012

Я хотел бы создать консольное приложение C # для запуска нескольких экземпляров IE, развернутых на нескольких мониторах.

Обновление: вот что я пробовал до сих пор.Когда я запускаю второй экземпляр IE, он не открывается на втором экране.Я думаю, что это как-то связано с MainWindowHandle, так как IE может иметь только один дескриптор главного окна, который он разделяет с несколькими окнами.Последняя строка кода фактически вызывает исключение InvalidOperationException.Этот код работает для запуска блокнота, но не для IE.

using System;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace TestLauncher
{
    class Launcher2
    {
        [DllImport("user32.dll")]
        private extern static bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
        const int SWP_SHOWWINDOW = 0x0040;

        static readonly IntPtr HWND_TOP = IntPtr.Zero;

        public void Launch()
        {
            Process p1 = new Process();
            p1.StartInfo.FileName = "iexplore.exe";
            p1.StartInfo.Arguments = "microsoft.com";
            p1.Start();
            p1.WaitForInputIdle(2000);
            System.Threading.Thread.Sleep(2000);

            Rectangle monitor = Screen.AllScreens[0].WorkingArea;
            SetWindowPos(p1.MainWindowHandle, HWND_TOP, monitor.Left, monitor.Top, monitor.Width, monitor.Height, SWP_SHOWWINDOW);


            Process p2 = new Process();
            p2.StartInfo.FileName = "iexplore.exe";
            p2.StartInfo.Arguments = "google.com";
            p2.Start();
            p2.WaitForInputIdle(2000);
            System.Threading.Thread.Sleep(2000);

            Rectangle monitor2 = Screen.AllScreens[1].WorkingArea;
            SetWindowPos(p2.MainWindowHandle, HWND_TOP, monitor2.Left, monitor2.Top, monitor2.Width, monitor2.Height, SWP_SHOWWINDOW);
        }
    }
}

Если возможно, я ищу решение, достаточно гибкое для запуска других приложений, кроме IE.

...