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