0
这是一个奇怪的问题,我从来没有试过这样做过。从表格中读取数据
我有一个重复的过程,要求我将数据从一个程序的文本框复制并粘贴到另一个程序中作进一步处理。我想用VB.NET自动化这个过程。从中收集数据的应用程序不是我的,所以我没有类似ActiveX的控件访问。
如何编写应用程序以从另一个应用程序访问表单,以便能够找到表单上的控件并从中收集值?
只是试验,我用了下面的代码。这导致只有该代码所属的表单的名称。它没有找到我打开的任何其他表格的名称,我有很多可供选择的开放式名称。这是令人沮丧的,因为它只是我需要做的一件事,使我的生活更轻松......
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As CallBack, ByVal lParam As Integer) As Integer
Public Delegate Function CallBack(ByVal hwnd As IntPtr, ByVal lParam As IntPtr) As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cb As New CallBack(AddressOf MyCallBack)
EnumWindows(cb, 8)
End Sub
Public Function MyCallBack(ByVal hwnd As Long, ByVal lparam As Long) As Boolean
Dim frm As System.Windows.Forms.Control
frm = System.Windows.Forms.Form.FromHandle(hwnd)
If frm Is Nothing Then Return True
If frm.Text <> "" Then
TextBox1.Text += frm.Text & ", "
End If
Return True
End Function
有没有人有推荐?
感谢, SH
您可以使用Spy ++来识别其他应用程序窗体上的控件。我没有用过它,但也许它值得一试。 http://msdn.microsoft.com/en-us/magazine/cc163617.aspx – 2011-01-12 16:15:36