Show Contents / Index / Search

Event Logger (IBM)

using System;

using System.Collections.Generic;

using System.Text;

using Attachmate.Reflection;

using Attachmate.Reflection.Framework;

using Attachmate.Reflection.Emulation.IbmHosts;

using Attachmate.Reflection.UserInterface;

namespace ReflectionEventLogger

{

class Program

{

//Not otherwise defined.

private const String IBM3270TERMINAL = "{09E5A1B4-0BA6-4546-A27D-FE4762B7ACE1}";

static void Main(string[] args)

{

try

{

//Establish necessary Reflection objects.

Guid rInst = MyReflection.StartProgram();

//Opens necessary MDI parent.

Application rApp = MyReflection.CreateApplication("Reflection"); //Must specify, no default overload exists.

IIbmTerminal rTerm = (IIbmTerminal)rApp.CreateControl(new Guid(IBM3270TERMINAL));

IIbmScreen rScreen = rTerm.Screen;

IFrame rFrame = (IFrame)rApp.GetObject("Frame");

IMacro rMacro = rTerm.Macro;

IOia rOia = rScreen.Oia;

Attachmate.Reflection.Productivity.ISpellCheck rSpell = rTerm.Productivity.SpellCheck;

Attachmate.Reflection.Productivity.IRecentTyping rTyping = rTerm.Productivity.RecentTyping;

Attachmate.Reflection.Productivity.IAutoComplete rAutoComp = rTerm.Productivity.AutoComplete;

Attachmate.Reflection.Productivity.IAutoExpand rAutoExp = rTerm.Productivity.AutoExpand;

//Set up event handler for IFrame event before creating a new view.

rFrame.ViewOpened += new ViewEventHandler(rFrame_ViewOpened);

//Create a new view to make the terminal visible in the MDI frame.

IView rView = rFrame.CreateView(rTerm);

//Hook up events with handlers.

rView.Closed += new EventHandler(rView_Closed);

rView.Closing += new CancelableEventHandler(rView_Closing);

rView.Deselected += new EventHandler(rView_Deselected);

rView.Selected += new EventHandler(rView_Selected);

rView.TitleTextChanged += new EventHandler(rView_TitleTextChanged);

rTerm.AfterConnect += new EventHandler(rTerm_AfterConnect);

rTerm.AfterDisconnect += new EventHandler(rTerm_AfterDisconnect);

rTerm.BeforeConnect += new EventHandler(rTerm_BeforeConnect);

rTerm.BeforeDisconnect += new EventHandler(rTerm_BeforeDisconnect);

rTerm.Closed += new EventHandler(rTerm_Closed);

rScreen.AfterSendKeys += new AfterSendKeysEventHandler(rScreen_AfterSendKeys);

rScreen.BeforeSendControlKey += new BeforeSendControlKeyEventHandler(rScreen_BeforeSendControlKey);

rScreen.BeforeSendKeys += new BeforeSendKeysEventHandler(rScreen_BeforeSendKeys);

rScreen.CursorInNewField += new CursorInNewFieldEventHandler(rScreen_CursorInNewField);

rScreen.KeyboardLocked += new EventHandler(rScreen_KeyboardLocked);

rScreen.KeyboardUnlocked += new EventHandler(rScreen_KeyboardUnlocked);

rScreen.NewScreenReady += new EventHandler(rScreen_NewScreenReady);

rScreen.ScreenChanged += new EventHandler(rScreen_ScreenChanged);

rMacro.MacroCompleted += new EventHandler(rMacro_MacroCompleted);

rMacro.MacroStarted += new EventHandler(rMacro_MacroStarted);

rOia.OiaChanged += new EventHandler(rOia_OiaChanged);

rSpell.MisspelledWord += new Attachmate.Reflection.Productivity.MisspelledWordEventHandler(rSpell_MisspelledWord);

rTyping.ListChanged += new EventHandler(rTyping_ListChanged);

rAutoComp.DictionaryChanged += new EventHandler(rAutoComp_DictionaryChanged);

rAutoComp.SuggestionAccepted += new Attachmate.Reflection.Productivity.AutoCompleteAcceptedEventHandler(rAutoComp_SuggestionAccepted);

rAutoExp.AutoExpanded += new Attachmate.Reflection.Productivity.AutoExpandEventHandler(rAutoExp_AutoExpanded);

rAutoExp.DictionaryChanged += new EventHandler(rAutoExp_DictionaryChanged);

//Connect the session.

rTerm.HostAddress = "150.215.4.8";

//Change the IP address to match the IP for your host.

rTerm.Connect();

ReturnCode retc = rScreen.WaitForHostSettle(10000, 1000);

if (retc.Equals(ReturnCode.Timeout) || rTerm.IsConnected == false)

throw new ApplicationException("Connection failed.");

else

Console.Write("Connected to " + rTerm.HostAddress + "\n");

//You must connect to a session before retrieving an IScreenHistory object or a NullPointerException will occur.

Attachmate.Reflection.Productivity.IScreenHistory rScrHist = rTerm.Productivity.ScreenHistory;

rScrHist.ScreenChanged += new EventHandler(rScrHist_ScreenChanged);

rScrHist.ScreenSelected += new EventHandler(rScrHist_ScreenSelected);

//Wait for input so that events are logged before exiting.

Console.Write("Press any key to exit ReflectionEventsDemo...\n");

ConsoleKeyInfo cki = Console.ReadKey();

}

catch (ApplicationException ex)

{

Console.Write("Uh-oh, " + ex.Message);

}

}//Main

static void rAutoExp_DictionaryChanged(object sender, EventArgs e)

{

Console.Write("rAutoExp_DictionaryChanged\n");

}

static void rAutoExp_AutoExpanded(object sender, Attachmate.Reflection.Productivity.AutoExpandEventArgs args)

{

Console.Write("rAutoExp_AutoExpanded\n");

}

static void rAutoComp_SuggestionAccepted(object sender, Attachmate.Reflection.Productivity.AutoCompleteAcceptedEventArgs e)

{

Console.Write("rAutoComp_SuggestionAccepted\n");

}

static void rAutoComp_DictionaryChanged(object sender, EventArgs e)

{

Console.Write("rAutoComp_DictionaryChanged\n");

}

static void rTyping_ListChanged(object sender, EventArgs e)

{

Console.Write("rTyping_ListChanged\n");

}

static void rScrHist_ScreenSelected(object sender, EventArgs e)

{

Console.Write("rScrHist_ScreenSelected\n");

}

static void rScrHist_ScreenChanged(object sender, EventArgs e)

{

Console.Write("rScrHist_ScreenChanged\n");

}

static void rSpell_MisspelledWord(object sender, Attachmate.Reflection.Productivity.MisspelledWordEventArgs args)

{

Console.Write("rSpell_MisspelledWord\n");

}

static void rOia_OiaChanged(object sender, EventArgs e)

{

Console.Write("rOia_OiaChanged\n");

}

static void rMacro_MacroStarted(object sender, EventArgs e)

{

Console.Write("rMacro_MacroStarted\n");

}

static void rMacro_MacroCompleted(object sender, EventArgs e)

{

Console.Write("rMacro_MacroCompleted\n");

}

static void rScreen_ScreenChanged(object sender, EventArgs e)

{

Console.Write("rScreen_ScreenChanged\n");

}

static void rScreen_NewScreenReady(object sender, EventArgs e)

{

Console.Write("rScreen_NewScreenReady\n");

}

static void rScreen_KeyboardUnlocked(object sender, EventArgs e)

{

Console.Write("rScreen_KeyboardUnlocked\n");

}

static void rScreen_KeyboardLocked(object sender, EventArgs e)

{

Console.Write("rScreen_KeyboardLocked\n");

}

static void rScreen_CursorInNewField(object sender, CursorInNewFieldEventArgs args)

{

Console.Write("rScreen_CursorInNewField\n");

}

static void rScreen_BeforeSendKeys(object sender, BeforeSendKeysEventArgs args)

{

Console.Write("rScreen_BeforeSendKeys\n");

}

static void rScreen_BeforeSendControlKey(object sender, BeforeSendControlKeyEventArgs args)

{

Console.Write("rScreen_BeforeSendControlKey\n");

}

static void rScreen_AfterSendKeys(object sender, AfterSendKeysEventArgs args)

{

Console.Write("rScreen_AfterSendKeys\n");

}

static void rTerm_Closed(object sender, EventArgs e)

{

Console.Write("rTerm_Closed\n");

}

static void rTerm_BeforeDisconnect(object sender, EventArgs e)

{

Console.Write("rTerm_BeforeDisconnect\n");

}

static void rTerm_BeforeConnect(object sender, EventArgs e)

{

Console.Write("rTerm_BeforeConnect\n");

}

static void rTerm_AfterDisconnect(object sender, EventArgs e)

{

Console.Write("rTerm_AfterDisconnect\n");

}

static void rTerm_AfterConnect(object sender, EventArgs e)

{

Console.Write("rTerm_AfterConnect\n");

}

static void rView_TitleTextChanged(object sender, EventArgs e)

{

Console.Write("rView_TitleTextChanged\n");

}

static void rView_Selected(object sender, EventArgs e)

{

Console.Write("rView_Selected\n");

}

static void rView_Deselected(object sender, EventArgs e)

{

Console.Write("rView_Deselected\n");

}

static void rView_Closing(object sender, CancelableEventArgs args)

{

Console.Write("rView_Closing\n");

}

static void rView_Closed(object sender, EventArgs e)

{

Console.Write("rView_Closed\n");

}

static void rFrame_ViewOpened(object sender, EventArgs e)

{

Console.Write("rFrame_ViewOpened\n");

}

}

}