以编程方式从终端仿真器读取内容

时间:2013-11-29 18:15:09

标签: c# automation

我正在尝试在Mainframe中自动执行某些操作。为此,我制作了一个C#程序,使用终端模拟器wc3270连接到Mainframe并发送密钥。

这部分工作正常。

我的问题是我需要阅读终端仿真器屏幕中显示的内容,以便我可以更好地决定我将发送给它的密钥。

我怎么能这样做?我没有找到任何能让我这样做的API。

感谢。

1 个答案:

答案 0 :(得分:1)

我建议使用IBM个人通讯工具: http://www-03.ibm.com/software/products/en/pcomm

与C#EHLLAPI包装器一起,URL为例: https://www.codeproject.com/Articles/9615/Using-EHLLAPI-in-C

要查找模拟器的会话密钥,可以使用Windows Sysinternals中的handle.exe

我用于处理的代码:

public String getSessionKey(String pid)
    {
        Process p = new Process();
        p.StartInfo = new ProcessStartInfo()
        {
            UseShellExecute = false,
            CreateNoWindow = true,
            WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
            FileName = "cmd.exe",
            Arguments = "/C C:\\handle.exe -a -p " + pid,
            RedirectStandardError = true,
            RedirectStandardOutput = true
        };
        p.Start();

        String str = (p.StandardOutput.ReadToEnd());
        String[] arr = str.Split('\n');

        foreach (String s in arr)
        {
            if (s.Contains("Owned"))
            {
                return s.Substring(s.Length - 3, 1);
            }
        }

        return "";
    }