是否有人使用C#为IBM as400编写示例屏幕抓取工具?
答案 0 :(得分:3)
http://www.codeproject.com/KB/cs/all_ehllapi.aspx
我修改了这个例子,它运行得很好。
答案 1 :(得分:3)
使用interop.AutOIATypeLibrary和interop.AutPSTypeLibrary构建类库时。它会抛出如下错误 无法将“AutPSTypeLibrary.AutPSClass”类型的COM对象转换为接口类型“AutPSTypeLibrary.IAutPS”。此操作失败,因为对IID为“{891FC4A1-7DD8-11D0-9112-0004AC3617E1}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))
我正在使用VS2017,Framework 4.5。 Interop Dlls使用framework64中的regasm.exe注册,参考已添加
上面的Dll工作正常,同时使用控制台应用程序/ Win表单应用程序创建项目。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可能希望查看PHP中的新功能。最新版本的PHP有一个5250处理器,允许您创建一个与绿屏相互作用的Web应用程序。 5250 Bridge Info
我意识到你想要C#,但我还没有看到任何与屏幕直接交互的支持。也许写一个PHP应用程序连接到5250并从那里连接你的C#。
答案 4 :(得分:0)
我每天都与这些图书馆合作。如有需要,请随时发邮件给我。
示例:
using AutOIATypeLibrary;
using AutPSTypeLibrary;
namespace MyNamespace
{
public class Program
{
public AutPS PS = new AutPS();
public AutOIA OI = new AutOIA();
static void Main()
{
PS.SetConnectionByName("A");
OI.SetConnectionByName("A");
// Gets a string from the presentation space at row 1, col 1, length 5
PS.GetText(1, 1, 5);
// Gets the entire screen as a string. parse as needed.
PS.GetText(1, 1, PS.NumRows * PS.NumCols);
// Searches for a literal string in the presentation space by going forward from your row/col
PS.SearchText("LiteralString".ToUpper(), PsDir.pcSrchForward, 1, 1);
}
}
}