使用C#Windows窗体应用程序中的Windows API读取非C#Apps文本框

我们有一个用C语言编写的旧的Windows 32位应用程序可以执行一些操作,并将结果显示为类似于文本框的内容.我被要求在C#中编写一个应用程序,它从旧应用程序中读取数据,然后进一步处理数据.问题是如何阅读旧应用程序中...

我们有一个用C语言编写的旧的Windows 32位应用程序可以执行一些操作,并将结果显示为类似于文本框的内容.

我被要求在C#中编写一个应用程序,它从旧应用程序中读取数据,然后进一步处理数据.

问题是如何阅读旧应用程序中的文本框?

有人告诉我,我可以使用Windows API获取应用程序的“句柄”并逐步执行控件,然后读取每个数据!这是真的,如果是这样,我将如何从C#中做到这一点?

这是一个.Net 4 Windows窗体应用程序.

非常感谢

解决方法:

您可能不得不使用一些Interop调用来完成此操作,特别是使用FindWindow/FindWindowEx和SendMessage& WM_GETTEXT/WM_GETTEXTLENGTH.

这是关于这个主题的article(在c中,但是相同的概念只需要移植到使用P/Invoke),它有点过时但我认为应该与你的情况非常相关.

本文标题为:使用C#Windows窗体应用程序中的Windows API读取非C#Apps文本框

基础教程推荐