使用 C# WinForms 应用程序访问另一个应用程序的元素

Ale*_*lex 5 c# handle winforms

我希望能够在另一个应用程序中执行以下操作:

  • 更改选项卡
  • 从文本框中复制文本
  • 单击按钮
  • 在文本框中输入文本
  • 选择 DropDownList 元素

现在我正在使用单独的方法,例如:

  • mouse_event() 更改鼠标坐标并单击按钮
  • 另一个 mouse_event(LeftMouseClick 后跟 RightMouseClick)用于复制文本框中的文本
  • Clipboard.GetText(System.Windows.Forms.TextDataFormat.Text) 复制剪贴板中的内容
  • SendInput(对于每个键)- 将文本输入到文本框中

这种方法的缺点是:

  • (不重要)PC 变得无法使用(脚本运行时您无法工作)
  • 我必须知道应用程序中每个元素的确切像素(读取 - 位置/坐标)
  • 执行时间慢(每个键必须单独键入)

我期待创建一个可以单击文本框/按钮/列表的应用程序,而不需要这些元素的精确坐标。

使用 C# WinForms 可以完成这样的任务吗?我目前的方法有效,但也有缺陷。有什么建议吗?

Mar*_*gal 0

了解互斥体。如果您计划扩展能力,请阅读有关网络通信的内容(例如,TCP 协议、TcpListnerTcpClient)。