Reflection .NET API
Get Started / Create an Invisible Session
Create an Invisible Session

You can create or open a session that runs without displaying the workspace and session.

This sample opens a session document and makes the workspace invisible. Data is copied from the screen and displayed in the console.

To create an invisible session

  1. Open the Reflection workspace and create a demo session as follows:

    If you are using IBM, create an IBM3270 session with a host name of "demo:ibm3270.sim" and save the session as demoSession.rd3x in the default folder (...\myDocuments\Micro Focus\Reflection.)

    If you are using Open Systems, create a VT session with a host name of "demo:UNIX" and save the session as demoSession.rdox in the default folder.

  2. In Reflection, create a session document and save it as "demoSession" in the default folder. (The default folder is ..\myDocuments\Micro Focus\Reflection.)
  3. In Visual Studio, create a new Console Application project and add references for the following Reflection assemblies. (Depending on your version of Visual Studio, these can be found either on the .NET tab or under Assemblies | Extensions.)
    Attachmate.Reflection.Framework
    Attachmate.Reflection.Emulation.IbmHosts
    Attachmate.Reflection.Emulation.OpenSystems
    Attachmate.Reflection
  4. Replace all the code in the Program.cs file with the following code for the terminal you are using.
    Create an invisible session
    Copy Code
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Attachmate.Reflection.Framework;
    using Attachmate.Reflection.Emulation.IbmHosts;
    using Attachmate.Reflection.UserInterface;
    
    namespace CreateSessionFromExistingSessionFile
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Start an invisible instance of Reflection or get the instance running at the given channel name 
                Application app = MyReflection.CreateApplication("myWorkspace", false);
    
                //Create a terminal from the session document file
                string sessionPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\Reflection\demoSession.rd3x";
                IIbmTerminal terminal = (IIbmTerminal)app.CreateControl(sessionPath);
    
                //Create a view for the session
                IFrame frame = (IFrame)app.GetObject("Frame");
                frame.CreateView(terminal);
    
                //Get a handle to the screen. Then wait until it is ready and get the maximum columns and rows
                IIbmScreen screen = terminal.Screen;
                screen.WaitForHostSettle(3000, 2000);
                int maxCols = screen.Columns;
                int maxRows = screen.Rows;
    
                //Get the text on the screen and write it to the Console.
                string text = screen.GetTextEx(1, 1, maxRows, maxCols, GetTextArea.Block, GetTextWrap.On, GetTextAttr.Any, GetTextFlags.None);
                Console.WriteLine(text);
    
    
                //Close Reflection 
                app.Close(ApplicationCloseOption.CloseNoSave);
    
                Console.ReadLine();
    
            }
        }
    }
    
    
    
    
    

                                                                                      

To test this project

Press F5 to run the project and verify that the text from the session is displayed in the Console.