Start(String,Boolean) Method
Starts and names a (visible or invisible) Reflection application instance when the Reflection Workspace "API Settings" .Net API option is enabled.
Parameters
- channelName
- The name of the application instance. This name must be unique among active application instances in order to be reachable by .Net API programs. The channel name must have the same format as a valid Internet hostname. Names can contain only the ASCII letters 'a' through 'z' (in a case-insensitive manner), the digits '0' through '9', and the hyphen ('-'). No other symbols, punctuation characters, or white space are permitted.
- visible
- The Boolean value that indicates whether the Reflection application is visible.
Return Value
Reflection instance ID.
The following example shows how to start two new, invisible application instancew with specific channel names.
using System;
using System.Collections.Generic;
using System.Text;
using Attachmate.Reflection;
using Attachmate.Reflection.Emulation.IbmHosts;
using Attachmate.Reflection.Framework;
using Attachmate.Reflection.UserInterface;
using Attachmate.Reflection.Emulation.OpenSystems;
namespace MultipleWorkSpaces
{
class Program
{
static void Main(string[] args)
{
//Start an ininvisible instance of a workspace and get a handle to the instance running at the given channel name ("Workspace1")
MyReflection.Start("Workspace1", false);
Application app1 = MyReflection.CreateApplication("WorkSpace1");
//Create a new IBM Session
IIbmTerminal terminal1 = (IIbmTerminal)app1.CreateControl(new Guid("{09E5A1B4-0BA6-4546-A27D-FE4762B7ACE1}"));
terminal1.HostAddress = "demo:ibm3270.sim";
//Create a View and then get a handle to the screen
IFrame frame1 = (IFrame)app1.GetObject("Frame");
frame1.CreateView(terminal1);
IIbmScreen screen1 = terminal1.Screen;
//Start a second invisible instance of a workspace and get a handle to the instance running at the given channel name ("Workspace2")
MyReflection.Start("Workspace2", false);
Application app2 = MyReflection.CreateApplication("WorkSpace2");
//Open a session in the second workspace
string sessionPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\Reflection\demoSession.rdox";
ITerminal terminal2 = (ITerminal)app2.CreateControl(sessionPath);
//Create a View for the session in the second workspace, and then get a handle to the screen
IFrame frame2 = (IFrame)app2.GetObject("Frame");
frame2.CreateView(terminal2);
IScreen screen2 = (IScreen)terminal2.Screen;
//Get some text from each of the terminal screens in the two workspaces
Console.WriteLine("IBM terminal text is" + screen1.GetText(1, 1, 20) + "and UNIX text is" + screen2.GetText(1, 1, screen2.DisplayRows, screen2.DisplayColumns));
//Close the workspaces
app1.Close(ApplicationCloseOption.CloseNoSave);
app2.Close(ApplicationCloseOption.CloseNoSave);
}
}
}