using System;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using Attachmate.Reflection.Framework;
using Attachmate.Reflection.Emulation.IbmHosts;
using Attachmate.Reflection.UserInterface;
using Attachmate.Reflection.Productivity;
namespace ConfigureRecentTyping
{
class Program
{
static void Main(string[] args)
{
//Start a visible instance of InfoConnect or get the instance running at the given channel name
Application app = MyReflection.CreateApplication("myWorkspace", true);
//Create a terminal from the session document file
string sessionPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\InfoConnect\demoSession.rd3x";
IIbmTerminal terminal = (IIbmTerminal)app.CreateControl(sessionPath);
//Make the session visible in the workspace
IFrame frame = (IFrame)app.GetObject("Frame");
frame.CreateView(terminal);
IIbmScreen screen = terminal.Screen;
IProductivity productivityTools = terminal.Productivity;
IRecentTyping typing = terminal.Productivity.RecentTyping;
//Enable recent typing
typing.Enabled = true;
//Make the Recent Typing panel visible
typing.RecentTypingPanelVisible = true;
//Keep the list for the next session
typing.ClearListOnDisconnect = false;
//Set the minimum length, in characters, for words added to Recent Typing.
typing.MinimumMatch = 5;
//Set the maximum number of items in the Recent Typing list.
typing.MaxListItems = 50;
//Remove the user name from the list
string uName = Environment.UserDomainName;
typing.DeleteListItem(uName);
//Add an item to the list
typing.AddListItem("Kayak");
typing.ListChanged += typing_ListChanged;
Console.ReadLine();
}
static void typing_ListChanged(object sender, EventArgs e)
{
Console.WriteLine("list changed");
IRecentTyping typing = (IRecentTyping)sender;
string[] typingEntries = typing.RecentTypingCollection;
//Check and remove sensitive entries
for (int i = 0; i < typingEntries.Length; i++)
{
if (typingEntries[i] == "SecretStuff")
{
typing.DeleteListItem(i);
}
}
}
}
}