Захват данных из элемента управления ProBrowser с WinAPI - PullRequest
1 голос
/ 23 ноября 2010

Я пытаюсь прочитать строки с элемента управления в неуправляемом приложении. Я использовал 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.

Теперь я застрял. Я не уверен, как еще получить данные из списка, так как они не отображаются нигде в доступном месте. Я включил скриншот рассматриваемого окна, если это поможет.

alt text

1 Ответ

1 голос
/ 31 марта 2011

используя QTP Quick Test Professional ver 10, вы можете получить значения внутри объекта probrowser.Вы должны использовать <probrowser Object Reference>.GetVisibleText.

Мы используем то же самое в наших сценариях автоматизации.

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