Я очень стараюсь понять, как получить текст из элемента управления в окне другого приложения.Короче говоря, я пытаюсь автоматизировать процесс проверки, запущено ли другое приложение, а затем, если оно найдено, получение текста из того, что я считаю, является одним из первых элементов управления в окне.
не отображаются какие-либо дочерние окна в приложении.Я не могу найти какие-либо дочерние элементы управления с помощью Spy ++.
Я могу получить заголовок окна и дескриптор приложения, используя
IntPtr handle = FindWindow(null, "Zuercher Mobile");
Кажется, я не могу найти способ перебрать дочерние элементы управления и получить их текст.Примеры, как правило, показывают, как получить текст из Блокнота, но вы знаете, что имя элемента управления - «РЕДАКТИРОВАТЬ».Я не знаю имя элемента управления, в котором есть текст, который я пытаюсь получить.
В качестве примера я попытался
private void GetAllText(IntPtr handle)
{
IntPtr Handle = Marshal.AllocHGlobal(100);
IntPtr ChildHandle = IntPtr.Zero;
int NumText = (int)SendMessage(handle, WM_GETTEXT, (IntPtr)50, Handle);
// Loop through all the textboxes that are children of Hwnd.
int childNo = 0;
while ((ChildHandle = FindWindowEx(handle, ChildHandle, "Zuercher Mobile", "")) != IntPtr.Zero)
{
IntPtr Hndl = Marshal.AllocHGlobal(200);
NumText = (int)SendMessage(ChildHandle, WM_GETTEXT, (IntPtr)200, Hndl);
Text = Marshal.PtrToStringUni(Hndl);
textBox1.Text += "(Child Number " + childNo + ") " + Text + Environment.NewLine;
Marshal.FreeHGlobal(Hndl);
childNo++;
}
}
, который показывает только 0 дочерних элементов управления.
Как это можно сделать?Я пытался. Проблемы с получением текста из элемента управления в другом окне и Не удается получить текст из другого приложения (окна)
без успеха.