Я пытаюсь прочитать строки с элемента управления в неуправляемом приложении. Я использовал ManagedWinapi, чтобы обернуть pinvokes, и по большей части это привело меня туда, где я должен быть. Я могу найти элемент управления (это класс ProBrowser, точно не знаю, что это такое) и просмотреть свойства, но ни одна из нужных мне сведений недоступна. Вместо этого ProBrowser имеет девять дочерних элементов, все текстовые поля с соответствующими свойствами: Password: false, MultiLine: false
и Text: <blank>
. Я предполагаю, что это заголовки столбцов, но не так уж и много. Это настолько далеко, насколько я могу получить, и ни на одном уровне я не имею доступа к фактическому содержанию списка.
SystemWindow list = new SystemWindow(ptr); // latching onto the ProBrowser
SystemWindow[] pieces = list.AllDescendantWindows; // same results if using .AllChildWindows
foreach (SystemWindow y in pieces) {
ManagedWinapi.Windows.Contents.TextContent tc = (ManagedWinapi.Windows.Contents.TextContent)y.Content; // ListContent returns null here and on the parent control
Console.WriteLine(tc.LongDescription);
Console.WriteLine(tc.ComponentType);
foreach (KeyValuePair<string, string> kvp in tc.PropertyList) {
Console.WriteLine("\t" + kvp.Key + ", " + kvp.Value);
}
Console.WriteLine("\tText: " + GetText(y.HWnd));
}
GetText
- это просто оболочка для GetWindowText
. Он просто возвращает текст для других элементов управления, таких как кнопки, но ничего не извлекает из ProBrowser.
Теперь я застрял. Я не уверен, как еще получить данные из списка, так как они не отображаются нигде в доступном месте. Я включил скриншот рассматриваемого окна, если это поможет.