Это странный вопрос, я никогда не пытался сделать это раньше.
У меня повторяющийся процесс, требующий, чтобы я копировал и вставлял данные из текстовых полей одной программы в другую программу для дальнейшей обработки. Я хотел бы автоматизировать этот процесс с помощью 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