c# - 使用 Windows API 从 C# Windows 窗体应用程序读取非 C# 应用程序文本框

标签 c# winapi

我们有一个用 C++ 编写的旧 Windows 32 位应用程序,它执行一些操作并将结果显示在类似于文本框的内容中。

有人要求我用 C# 编写一个应用程序,从旧应用程序中读取数据,然后进一步处理数据。

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

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

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

非常感谢

最佳答案

您可能不得不使用一些 Interop 调用来完成此操作,特别是使用 FindWindow 的组合/FindWindowExSendMessage & WM_GETTEXT/WM_GETTEXTLENGTH .

这是一个 article关于这个主题(在 C++ 中,但是只需移植相同的概念即可使用 P/Invoke ),它有点过时,但我相信它应该与您的情况非常相关。

关于c# - 使用 Windows API 从 C# Windows 窗体应用程序读取非 C# 应用程序文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014544/

相关文章:

windows - 查询线程(不是进程)处理器亲和性?

c# - 如何从外部程序集运行测试

c# - 无法从 C# 代码连接到我的 Tfs 服务器

windows - 一旦进程结束,进程句柄会发生什么?

c - PROCESS_EXTENDED_BASIC_INFORMATION 结构中标志的含义?

c++ - Hook WH_CALLWNDPROC 后未获取窗口过程消息

c# - 将空的 Textbox.Text 读取为 ""、null 或 String.Empty?

c# - 优化double for循环以提高执行速度

c# - Mono for Android - 支持的架构 - 放弃 x86?

c++ - 系统与 ShellExecute - 差异?