현재 실행중인 컴퓨터에 연결된 모든 화면을 "잡을"수 있어야하는 C#의 응용 프로그램에서 작업 중입니다. 그러나 과거에 얻을 수없는 Windows.Forms를 사용하는 데 문제가 있습니다.Windows.Forms 확장 바탕 화면, C#의 개별 화면 감지
기본적으로 API와 기타 모든 항목에서 AllScreens [i]를 사용하면 시스템에 연결된 모든 화면에 액세스 할 수 있습니다. 그러나 문제는 확장 된 데스크톱에서 컴퓨터에 연결된 두 개의 화면이있을 때 하나의 화면으로 감지한다는 것입니다. 내가 실행 예를 들어, 경우 :
System.Windows.Forms.Screen.AllScreens[0].Bounds.Width
나는 배열의 첫 번째 화면의 폭을 얻을 기대하지만, 대신에 나는 두 화면의 결합 된 폭을 얻는다. 사실
는 실행할 때 : AllScreens.Length
실제로 Windows.Forms를 사용하여 개별 화면을 감지 할 수있는 방법이 있나요 1.
반환? 여기
올바른 화면 너비 "0"을 얻으려면이 방법이 유용합니다.이 방법은 모든 화면의 결합 된 너비를보고하는 Bounds.Width를 사용하는 것보다 훨씬 낫습니다. 그러나 AllScreens [1]를 사용하여 다음 화면을 얻을 수 없기 때문에 문제를 완전히 해결하지는 못합니다. 확장 바탕 화면 모드의 두 화면은 여전히 단일 화면으로보고됩니다. –
AllScreens는 윈도우의 제어판에 나타나는 모니터를 보여줍니다. 예를 들어, 하나의 큰 화면 (SLS)으로 설정된 Eyefinity를 가지고 있다면, 그것은 AllScreens에서 하나의 항목으로 나타나거나 3 개의 별도 모니터로 설정했다면 AllScreens에서 3 개의 항목이됩니다. 컴퓨터의 현재 설정을 확인해야 할 수 있습니다. – Moeen