Basic Programming Tasks > Get a View and its Session Using Title Text |
This sample program gets both the View object and the embedded Control object for a session by referencing the title text of the View. For a list of methods by which you can identify View objects, see Getting Terminal and View Objects.
To create a view using its title text
using System; using System.Collections.Generic; using System.Text; using Attachmate.Reflection.Framework; using Attachmate.Reflection.UserInterface; using Attachmate.Reflection.Emulation.IbmHosts; //GetViewAndControlByTitleText gets the view and terminal control of a running session. //Before you run this sample, open the session used by GetViewByTitleText (in this sample, this is Test.rd3x). namespace GetViewAndControlByTitleText { 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 by using the title text. Title text appears on the tab of the loaded session in the running Reflection instance. sessionView = theFrame.GetViewByTitleText("test.rd3x"); 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 2014 installation."); } else Console.WriteLine("No such view is open in Reflection 2014. Check the view's title text."); } else Console.WriteLine("Fatal error. Check Reflection 2014 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; //GetViewAndControlByTitleText gets the view and terminal control of a running session. //Before you run this sample, open the session used by GetViewByTitleText (in this sample, this is test.rdox). namespace GetViewAndControlByTitleText { 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 by using the title text. Title text appears on the tab of the loaded session in the running Reflection 2014 instance. sessionView = theFrame.GetViewByTitleText("test.rdox"); 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 2014 installation."); } else Console.WriteLine("No such view is open in Reflection 2014. Check the view's title text."); } else Console.WriteLine("Fatal error. Check Reflection 2014 installation."); } else Console.WriteLine("Failed to get Application object."); } } }
sessionView=theFrame.GetViewByTitleText("");
A Windows console box appears with a line of text extracted from the host screen, and the following text: "The session is connected to: the_host_address" and "Press any key to continue….."