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

C# 以编程方式从终端仿真器读取内容,c#,automation,C#,Automation,我正在尝试自动化大型机中的一些操作。为此,我制作了一个C#程序,使用终端仿真器wc3270连接到大型机,并向其发送密钥 这部分很好用 我的问题是,我需要阅读终端模拟器屏幕上显示的内容,以便更好地决定将向其发送哪些键 我怎么做呢?我没有找到任何API可以让我这么做 谢谢。我建议使用IBM个人通信工具: 与C#EHLLAPI包装器一起,URL指向示例: 要查找仿真器的会话密钥,可以使用Windows Sysinternals中的handle.exe 我用于句柄的代码: public String

我正在尝试自动化大型机中的一些操作。为此,我制作了一个C#程序,使用终端仿真器wc3270连接到大型机,并向其发送密钥

这部分很好用

我的问题是,我需要阅读终端模拟器屏幕上显示的内容,以便更好地决定将向其发送哪些键

我怎么做呢?我没有找到任何API可以让我这么做


谢谢。

我建议使用IBM个人通信工具:

与C#EHLLAPI包装器一起,URL指向示例:

要查找仿真器的会话密钥,可以使用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 "";
    }

我建议使用IBM个人通信工具:

与C#EHLLAPI包装器一起,URL指向示例:

要查找仿真器的会话密钥,可以使用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 "";
    }

您是如何向它发送数据,以便从中读取数据不会立即变得明显的?通常定义的操作是相反的。我使用的是Windows()中的SendKeys函数。如何向它发送数据,以便从中读取数据不会立即变得明显?通常定义的操作是相反的。