Страницы

Поиск по вопросам

среда, 1 января 2020 г.

Вытягивание текста из другой программы

#c_sharp #cpp #winapi


Установлен СофтФон MicroSip, и при поступлении входящего звонка необходимо вытаскивать
номер телефона.
Чем в этом случае пользоваться?
    


Ответы

Ответ 1



Для доступа к UI элементам программ есть 2 технологии доступа UI Automation и MSAA Для первого есть неплохая обертка Winium которая позволяет работать с WinForms и WPF через Selenum WebDriver. Смотреть какие элементы с какими атрибутами есть на форме можно через утилиты Inspect или UISpy взять можно здесь Пример работы с WinForm используя Winium (взято из Readme) namespace ConsoleApplication { using System.Windows.Automation; using Winium.Cruciatus.Core; using Winium.Cruciatus.Extensions; public class Program { private static void Main(string[] args) { var calc = new Winium.Cruciatus.Application("C:/windows/system32/calc.exe"); calc.Start(); var winFinder = By.Name("Calculator").AndType(ControlType.Window); var win = Winium.Cruciatus.CruciatusFactory.Root.FindElement(winFinder); var menu = win.FindElementByUid("MenuBar").ToMenu(); menu.SelectItem("View$Scientific"); menu.SelectItem("View$History"); win.FindElementByUid("132").Click(); // 2 win.FindElementByUid("93").Click(); // + win.FindElementByUid("134").Click(); // 4 win.FindElementByUid("97").Click(); // ^ win.FindElementByUid("138").Click(); // 8 win.FindElementByUid("121").Click(); // = calc.Close(); } } }

Ответ 2



Второй вариант использовать proxy, перехватывать и разбирать сетевой трафик и выцеплять номер телефона из запроса тут можно воспользоваться проектом Titanium

Комментариев нет:

Отправить комментарий