public void StartTwoInstances()
        {
            var propertyExpression = new PropertyExpression(AutomationElement.AutomationIdProperty, Constants.ID_METL_MAIN_WINDOW);
            foreach (var i in Enumerable.Range(0,2))
            {
                var metl = new UITestHelper(UITestHelper.RootElement, MeTL.StartProcess());
                metl.SearchProperties.Add(propertyExpression);

                var success = metl.WaitForControlEnabled();
                Assert.IsTrue(success, ErrorMessages.EXPECTED_MAIN_WINDOW);
            }

            var desktopBounds = AutomationElement.RootElement.Current.BoundingRectangle;
            var windows = MeTL.GetAllMainWindows(2, true);
            Assert.AreEqual(2, windows.Count);

            // move each window into position
            var windowCount = 0;
            foreach (AutomationElement window in windows)
            {
                var windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern;
                windowPattern.SetWindowVisualState(WindowVisualState.Normal);

                var transformPattern = window.GetCurrentPattern(TransformPattern.Pattern) as TransformPattern;
                transformPattern.Resize(desktopBounds.Width, desktopBounds.Height / 2);
                transformPattern.Move(0, (desktopBounds.Height / 2) * windowCount++);
            }
        }
        public void AttachToProcess()
        {
            var win1 = MeTL.StartProcess();
            var win2 = MeTL.StartProcess();

            var metlWindow1 = new UITestHelper();
            var metlWindow2 = new UITestHelper();

            var propertyExpression = new PropertyExpression(AutomationElement.AutomationIdProperty, Constants.ID_METL_MAIN_WINDOW);
            metlWindow1.SearchProperties.Add(propertyExpression);
            metlWindow2.SearchProperties.Add(propertyExpression);
            metlWindow1.WaitForControlExist();
            metlWindow2.WaitForControlExist();

            Thread.Sleep(3000);

            if (windows == null)
                windows = MeTL.GetAllMainWindows();

            Assert.IsTrue(windows.Count == 2, "Expected two instances to be running.");
            Assert.IsNotNull(windows, "Could not find a process named MeTL.  Have you started an instance (it can be clickonce)");
        }