Читать данные из формы - PullRequest
0 голосов
/ 12 января 2011

Это странный вопрос, я никогда не пытался сделать это раньше.

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

1 Ответ

0 голосов
/ 12 января 2011

System.Windows.Forms.Form представляет только формы .NET, тогда как большинство приложений Win32 используют собственные окна. Вам придется использовать встроенные функции Win32 для работы с окнами Win32. Если вы хотите получить заголовок окна, просто передайте дескриптор окна функции Win32 GetWindowText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...