Вкратце: я хочу использовать UI Automation в FL Studio 20 с использованием C #.Я знаю, что существует множество сред автоматизации пользовательского интерфейса.В настоящее время я использую Teststack.White , но этот фреймворк сделан для приложений на основе Win32, WinForms, WPF, Silverlight и SWT.Это работает в некотором роде для FL Studio 20. Вот что я имею в виду:
Красный прямоугольник взят из инструмента проверки пользовательского интерфейса.И это именно то, что Teststack.White видит.Он может разобрать контейнеры, но не фактические, кликабельные элементы.Прямо сейчас единственная опция, которую я оставил, чтобы щелкнуть по кнопке, это получить местоположение контейнера и затем симулировать щелчок мыши со смещением.Но это сработает только в том случае, если разрешение экрана останется прежним.
Итак, мой вопрос: существует ли какая-либо платформа, которая может обрабатывать пользовательские интерфейсы такого типа?А кто-нибудь знает, какую технологию GUI использует FL Studio?Я знаю, что он написан на Delphi, но это все, что я знаю.
Вот код, который нажимает кнопку с помощью метода смещения, который я упоминал выше (это для другой кнопки, но код остается примерно таким же):
TestStack.White.Application application = TestStack.White.Application.Launch(@"C:\Program Files (x86)\Image-Line\FL Studio 20\FL.exe");
this.window = application.GetWindow("FL Studio 20", InitializeOption.NoCache);
UIItemCollection coll = window.Items;
Panel itemToClick = null;
foreach (UIItem item in coll)
{
if (item.Name.Contains("Piano roll"))
{
if (((Panel)item).Items.Count == 0)
{
itemToClick = (Panel)item;
break;
}
}
}
window.Focus();
var mouse = window.Mouse;
Point p = itemToClick.Location;
p.Offset(11, 12);
mouse.Click(p);