必要性について説明します。
バグ報告の目的で、画面のビデオ キャプチャの方法をアプリケーションに含めます。
この目的のために、OBS studioというオープン ソース ライブラリを使用します。
マルチモニターのセットアップ (ほぼ 100% の顧客ベース) では、キャプチャするモニターを OBS に指示する必要があります。OBS は DirectX を使用します。これには、モニターにインデックスを付けて 0 から番号を付ける方法があります。
私たちのアプリケーションは .net アプリです。関連すると思われる 2 つの API 呼び出しは次のとおりです。
System.Windows.Forms.Screen.FromControl()
and
System.Windows.Forms.Screen.AllScreens
これらの静的呼び出しは、Screen オブジェクト、または画面オブジェクトの配列 ( .NET docs ) を返します。
今質問:
- OBS に記録を依頼できるように、アプリのメイン ウィンドウ (.net の「画面」が指定されている場合) の DirectX モニター番号を見つけるにはどうすればよいですか?
- つまり、AllScreens 配列を .NET からマップして、DirectX が理解するインデックスを監視するにはどうすればよいでしょうか?
平和。