【问题标题】:Accessing TcxGrid controls from a Delphi application from c# using WinAPI使用 WinAPI 从 c# 从 Delphi 应用程序访问 TcxGrid 控件
【发布时间】:2015-04-13 17:38:04
【问题描述】:

我们需要从 c# 中获取 Delphi 应用程序的一些控件的值。我们使用 SendMessageWM_GETTEXT 来获取文本中的文本

但是我们在 Delphi 应用程序中有 DataGrid (TcxGrid)...我们无法遍历行并连续读取列的值...关于如何做到这一点的任何想法完成

【问题讨论】:

  • 你可能在这里不走运。纯 delphi 控件不支持开箱即用的自动化。
  • 当然如果你有delphi代码你可以添加自动化支持
  • 我会在程序中构建 som 自动化并从数据集中读取值。你想过出口吗?如果这不是一个选项,您可以将键盘快捷方式发送到您的网格。
  • 你有Delphi应用程序的源代码吗?能改吗?
  • 不,我没有源...该应用程序是由客户端提供的...我尝试使用 UI Path ,屏幕抓取库...它能够获取内容为一个字符串...

标签: c# delphi winapi


【解决方案1】:

作为建议,您可以使用 AutoIT.https://www.autoitscript.com/site/autoit/ 的 C# 控件类。我成功地使用它自动化了几个用不同语言编写的复杂应用程序。它很容易理解,它隐藏了 SendMessage 的所有复杂性和其他血腥细节并完成了工作。

【讨论】:

  • 在这里不会有用。它将如何从控件中提取数据?
  • 这里有一些 Excel 工作示例autoitscript.com/autoit3/docs/libfunctions/_Excel_RangeRead.htm。该工具用途广泛,支持从控件中读取文本。
  • 如何从这个特定的控件中读取文本。不支持自动化的纯 Delphi 控件?一个控件,不为外部应用程序提供读取其内容的编程方式。
  • 你是对的。该控件不是从本机操作系统控件派生的。但 AutoIt 仍然可以通过发送击键并将数据复制到剪贴板并从那里进行处理来提供帮助。对类似问题的参考在这里autoitscript.com/forum/topic/…。不幸的是,它没有详细说明如何实现这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 2016-03-20
相关资源
最近更新 更多