Show Contents / Index / Search

Get the View in Focus (OpenSystems)

//This sample code is intended to illustrate a concept, and it shows only the code that is relevant to that concept.

//It may not meet the security requirements for a specific environment, and it should not be used exactly as shown.

//We recommend that you add security and error-handling code to make your projects more secure and robust.

//Attachmate provides this sample code "AS IS" with no warranties.

 

using System;

using System.Collections.Generic;

using System.Text;

using Attachmate.Reflection.Framework;

using Attachmate.Reflection.UserInterface;

using Attachmate.Reflection.Emulation.OpenSystems;

 

//GetFocusedSession finds which session has the focus in a Reflection workspace.

//Before you run this sample, open Reflection from the Start menu and then connect to two or more sessions.

namespace GetFocusedSession

{

  class Program

  {

    static void Main(string[] args)

    {

      Attachmate.Reflection.Framework.Application reflectionApplication = MyReflection.CreateApplication();

      if (reflectionApplication !=null)

      IView sessionView;

      //Get the Frame object.

      IFrame theFrame = (IFrame)reflectionApplication.GetObject("Frame");

      if (theFrame != null)

      {

        //Get the session view with the focus.

        sessionView = theFrame.SelectedView;

        if (sessionView != null)

        {

          //Get the control embedded in the view.

          ITerminal terminal = (ITerminal)sessionView.Control;

          if (terminal != null)

          {

            IScreen screen = terminal.Screen;

            IConnectionSettingsTelnet conn = (IConnectionSettingsTelnet)terminal.ConnectionSettings;

            string text = screen.GetText(18, 2, 48);

            Console.WriteLine("The Text at row 18, column 2: " + text);

            Console.WriteLine("The session is connected to: " + conn.HostAddress);

          }

          else

            Console.WriteLine("Fatal error. Check Reflection 2011 installation.");

        }

        else

          Console.WriteLine("No session is open in Reflection 2011.");

      }

      else

        Console.WriteLine("Fatal error. Check Reflection 2011 installation.");

    }

    else

      Console.WriteLine("Failed to get Application object.");

    }

  }

}