Я опишу необходимость:
Для сообщения об ошибках мы включаем в наше приложение способ видеозахвата экрана.
Для этой цели мы используем открытый Исходная библиотека с именем OBS studio .
В конфигурации с несколькими мониторами (практически на 100% от нашей клиентской базы) нам нужно указать OBS, какой монитор захватывать. OBS использует DirectX, который может индексировать мониторы, нумеруя их от 0.
Наше приложение - это приложение. net. 2 вызова API, которые кажутся актуальными:
System.Windows.Forms.Screen.FromControl()
and
System.Windows.Forms.Screen.AllScreens
эти вызовы stati c возвращают объект Screen или массив объектов экрана (. NET docs ).
Теперь вопрос:
- Как найти номер монитора DirectX для главного окна моего приложения (с учетом. net «Экран»), чтобы я мог задать OBS записать его?
- Другими словами, как мне сопоставить массив AllScreens из. NET, чтобы отслеживать индексы, понятные DirectX?
Peace.