在第三方表单上建立光标/插入位置

时间:2017-12-14 01:35:40

标签: c#

我正在尝试编写能够将数据输入到第三方应用程序中的软件。

我可以通过使用GetOpenedWindow()等参考其标题来检测屏幕上是否存在窗口,关注窗口然后使用SendKeys.SendWait("...")等注入击键。

但是,根据输入的内容,接收应用程序的行为不一致,无法预先确定其行为方式。特别是,我想填写的表单有很多字段。根据输入的内容,您可能需要按"按"输入/选择不同的次数以找到通往正确字段的路径。

因此,不可能简单地拥有需要发送的预定义密钥集。相反,我的软件需要能够通过了解第三方表单上的哪个控件在特定时间处于活动状态来与第三方软件进行交互。

即。我需要能够确定插入符号在第三方软件中的表单上的位置,或者更好地将其直接移动到表单上的特定控件。

请问这可能吗?

我在MS Visual Studio 2017中使用C#.NET。

1 个答案:

答案 0 :(得分:0)

从技术上讲,你可以通过在app中枚举windows(子控件)并将它们转换为等效的TextBox来完成所有这些操作,也许你可以使用left和top来确定哪个控件是哪个,以及像focus这样的属性实现你在追求什么...

*注意:记住控件只是带有句柄的窗口,因此可以将它们强制转换并使用它们

互联网上有很多资源和堆栈溢出来实现这个目标

也许其中一些可能会帮助你

From HWND to control

Access the state of control in Winforms from another application

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.focused(v=vs.110).aspx