我正在尝试在Mainframe中自动执行某些操作。为此,我制作了一个C#程序,使用终端模拟器wc3270连接到Mainframe并发送密钥。
这部分工作正常。
我的问题是我需要阅读终端仿真器屏幕中显示的内容,以便我可以更好地决定我将发送给它的密钥。
我怎么能这样做?我没有找到任何能让我这样做的API。
感谢。
答案 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 "";
}