Basic Programming Tasks > Get the View that has Focus |
This sample program gets the host session document that has focus in the Reflection workspace by getting the view object for that session.
Note: This program works only with host session documents; not Web page documents.
To get the view that has focus in the Workspace
using System;
using System.Collections.Generic;
using System.Text;
using Attachmate.Reflection.Framework;
using Attachmate.Reflection.UserInterface;
using Attachmate.Reflection.Emulation.IbmHosts;
//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.
IIbmTerminal terminal = (IIbmTerminal)sessionView.Control;
if (terminal != null)
{
IIbmScreen screen = terminal.Screen;
screen.WaitForHostSettle(6000, 3000);
string text = screen.GetText(18, 2, 48);
Console.WriteLine("The Text at row 18, column 2: " + text);
Console.WriteLine("The session is connected to: " + terminal.HostAddress);
}
else
Console.WriteLine("Fatal error. Check Reflection installation.");
}
else
Console.WriteLine("No session is open in Reflection.");
}
else
Console.WriteLine("Fatal error. Check Reflection installation.");
}
else
Console.WriteLine("Failed to get Application object.");
}
}
}
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 installation.");
}
else
Console.WriteLine("No session is open in Reflection.");
}
else
Console.WriteLine("Fatal error. Check Reflection installation.");
}
else
Console.WriteLine("Failed to get Application object.");
}
}
}
The host address of the selected session should display in the console. If you select a different session in the Reflection workspace and then run the program again, a different host address will display in the console.